递归和非递归分别实现 strlen (求字符串长度)
1,用非递归函数实现 strlen
#include <stdio.h>
#include <stdlib.h>
int Strlen(char str[]){
int size = 0;
for (int i = 0; str[i] != '\0'; ++i){ //遇到 \0 结束操作
++size;
}
return size;
}
int main(){
char str[] = "hehe";
printf("%d\n", Strlen(str));
system("pause");
return 0;
}
2,用递归函数实现 strlen
编写函数不允许创建临时变量,求字符串的长度
#include <stdio.h>
#include <stdlib.h>
int Strlen(char str[]){ //数组隐式转换成指针 char* str
if (str[0] == '\0'){
return 0;
}
return 1 + Strlen(str + 1); //str + 1 代表数组下一个元素
}
int main(){
char str[] = "abcde";
printf("%d\n", Strlen(str));
system("pause");
return 0;
}
博客主要围绕求字符串长度展开,介绍了用递归和非递归两种方式实现 strlen 函数,并且要求编写函数时不允许创建临时变量,重点在于不同实现方式的探讨。

1688

被折叠的 条评论
为什么被折叠?



