#include<stdio.h>
#include<string.h>
int my_strlen(char *str)
{
int count=0;//计算字符串的长度
while(*str!='\0') //递归的条件,应该是if,但是if不能实现循环,所以while
{
count++;
str++;
}
return count;
}
int main()
{
char arr[]="bit";
int len=my_strlen(arr);
printf("len=%d\n",len);
return 0;
}
好了,看到这里了,问题解决了。哈哈哈,那你中招了,看一下题目,不允许创建变量(我们创建了count)。所以重开吧。不要着急,你再仔细看看。
#include<stdio.h>
#include<string.h>
int my_strlen(char *str)
{
if (*str!='\0')
{
return 1+my_strlen(str+1);
}
else
return 0;
}
int main()
{
char arr[]="bit";
int len=my_strlen(arr);
printf("len=%d\n",len);
return 0;
}
其实对比上面两个,还是有异曲同工之妙的,至少它们的主体还是一样的,下面运用了函数的递归,并且没有创建变量。
标签:arr,变量,int,my,len,str,字符串,编写,strlen From: https://blog.51cto.com/u_15806064/5834156