#include<stdio.h>
#include<assert.h>
//方法一:使用递归实现
int my_strlen1(const char * string)
{
assert(string != NULL);
if(*string == ‘\0’)
return 0;
else
return 1+my_strlen1(string+1);
}
//方法二:非递归计数器法
int my_strlen2(const char * string)
{
int count = 0;
assert(string != NULL);
while(*string != ‘\0’)
{
count++;
string++;
}
return count;
}
//方法三:非递归指针相减
int my_strlen3(const char * string)
{
char * p = string;
assert(string != NULL);
while(*string != ‘\0’)
{
string++;
}
return string-p;
}
int main()
{
char * p = “abcdef”;
int ret = 0;
ret = my_strlen1§;
printf("%d\n",ret);
ret = my_strlen2§;
printf("%d\n",ret);
ret = my_strlen3§;
printf("%d\n",ret);
return 0;
}
strlen的三种实现方式
最新推荐文章于 2022-04-01 16:50:31 发布