要求:写一个返回字符串长度的函数,函数里面不用局部变量,不能调用系统函数strlen。
思想:用递归的想法。
#include "stdio.h"
int strlen_test(char * ch)
{
if (ch[0]=='/0')
{
return 0;
} else{
return(1+strlen_test(++ch));//地址传递。
}
}
int main()
{
char a[100]="help help help" ;
printf("%d",strlen_test(a));
printf("/n%d/n",strlen(a));
return 0;
}
运行结果:
14
14
Press any key to continue
/****************************************/
#include "stdio.h"
int strlen_test(char * ch)
{
if (ch[0]=='/0')
{
return 0;
}
else{
printf("%c",ch[0]);
return(strlen_test(ch++));//程序陷入死循环,因为函数先调用ch,然后ch指针才++,实际是形参ch一直得不到改变。
}
}
int main()
{
char a[100]="help help help" ;
printf("%d",strlen_test(a));
printf("/n%d/n",strlen(a));
return 0;
}