题目内容
递归和非递归分别实现strlen
strlen函数
strlen所作的是一个计数器的工作,它从内存的某个位置(可以是字符串开头,中间某个位置,甚至是某个不确定的内存区域)开始扫描,直到碰到第一个字符串结束符’\0’为止,然后返回计数器值(长度不包含’\0’)。
源程序及运行结果
#include <stdio.h>
int strlen(char *a)
{
if(*a!='\0')
{
return 1+strlen(a+1);
}
}
int nostrlen(char *a)
{
int count=0;
while(*a!='\0')
{
count++;
a++;
}
return count;
}
int main()
{
char a[]="hkdiausaod";
int count,count1;
count1=strlen(a);
count=nostrlen(a);
printf("递归字符串长度为:%d\n",count1);
printf("非递归字符串长度为:%d",count);
return 0;
}