#include<stdio.h>
int my_strlen(const char *arr)//计数方式
{
int count = 0;
while(*arr)
{
arr++;
count++;
}
return count;
}
int my_strlen1(char *arr)//指针方式
{
char *p = arr;//将数组首地址赋给指针p
while(*p != '\0')
{
p++; //p++,指针最后指向arr中最后一个元素
}
return p - arr; //最后一个元素减第一个元素,返回元素个数
}
int my_strlen2(char *arr)//递归方式
{
if(*arr == '\0')
{
return 0;
}
else
{
return 1 + my_strlen2(arr + 1);//递归调用自己,将arr+1传进去
}
}
int main()
{
char arr[] = "abcde";
my_strlen(arr);
my_strlen1(arr);
my_strlen2(arr);
printf("%d\n",my_strlen(arr));
printf("%d\n",my_strlen1(arr));
printf("%d\n",my_strlen2(arr));
return 0;
}
C语言分别实现递归和非递归strlen的三种方法
最新推荐文章于 2019-10-31 21:43:55 发布