首先我们要知道什么是递归 有一个限制条件 达到越来越接近这个限制条件 本质就是实现strlen函数 计算字符串长度 遇到'/0'则是结束的标志 那么这就是限制条件 如若满足此条件 则返回return 0; 要想学好递归 不能从正面角度切入问题 应该从结论出发 找到问题的根本 找到一定的限制条件 递归函数 函数要定义 最好在主函数之前 也可以是主函数以后 由于程序是从上到下的运行顺序 所以要声明
int strlen1(char str[])//返回类型是int 参数是char str[] 字符
{
if (str[0] == '\0')//查找结束的标志
{
return 0;
}
return 1 + strlen1(str + 1); //第一次 a+srelenl(str+1)
//第二次 a+b+s(str+1)
//第三次 a+b+c+s(str+1)
// //第四次 return 0;
}
int main()
{
char str[] = "abcde";
printf("%d\n", strlen1(str));
system("pause");//暂停代码的运行(冻结屏幕)
return 0;
}
接下来是利用for循环
int strlen1(char str[])
{
int size = 0;
for (int i = 0; str[i] != '\0'; i++) //循环的判断条件是遇到‘\0’ 结束循环
{
size=size+1;
}
return size;
}
int main()
{
char str[] = "abcde";
printf("%d\n", strlen1(str));
system("pause");
return 0;
}
运行结束 感谢大家观看