您的位置:首页 > 其它

递归和非递归分别实现strlen

2018-10-12 02:11 246 查看
int my_strlen(char *arr)
{
if(*arr == '\0')     //递归
{
return 0;
}
else
{
return 1+my_strlen(arr+1);
}
}

int my_strlen1(char *arr)
{
int count = 0;   //计数方式
while(*arr)
{
arr++;
count++;
}
return count;
}
int my_strlen2(char *arr)
{
char *p = arr;
while(*p != '\0')   //指针法
{
p++;   //元素地址
}
return p - arr;   //最后一个元素地址减去第一个元素地址即为元素个数

}
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;
}
阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: