实现strlen函数有三种方法:
一、计数器的方法
二、递归的方法
三、指针减指针的方法
下面是三种方法的实现:
计数器的方法:
int my_strlen(const char *str)
{
assert(str); //对指向字符串指针的断言
int count = 0;
while (*str)
{
count++;
str++;
}
return count;
}
递归的方法:
int my_strlen(const char *str)
{
assert(str);
if (*str == ‘\0‘)
return 0;
else
return 1 + my_strlen(str + 1);
}
指针减指针的方法:
int my_strlen(const char *str)
{
assert(str);
const char *p = str;
while (*p++)
{
;
}
return p - str - 1;
//因为*p==‘\0’时,再自加1,返回时指向‘\0‘的下一个空间,导致指针相减时多出一个元素,因此再减1才返回字符串的长度。
}
原文地址:http://haipi.blog.51cto.com/10778780/1718546