递归和非递归分别实现 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;
}