#include <stdio.h>
#include <assert.h>
//方法一:使用指针
int my_strlen(const char *str)
{
assert(str);
int count = 0;
while (*str++)
{
count++;
}
return count;
}
int main()
{
char *str = "abcdef";
int len = my_strlen(str);
printf("%d\n", len);
system("pause");
return 0;
}
//方法二:递归实现
int my_strlen(const char *str)
{
if (*str ==‘\0‘ )
{
return 0;
}
else
{
return 1 + my_strlen(str+1); //str+1
}
}
int main()
{
char *str = "abcdef";
//strlen(str) == 1+strlen(str+1)==1+1+strlen(str+1+1)
int len = my_strlen(str);
printf("%d\n", len);
system("pause");
return 0;
}本文出自 “Vs吕小布” 博客,谢绝转载!
原文:http://survive.blog.51cto.com/10728490/1710682