strlen函数
size_t strlen ( const char * str );
这个strlen函数表示计算字符串长度,每次碰到一个字符就加一,当碰到’\0’就会结束返回字符串长度
计数器方法
size_t my_strlen(const char* str)
{
int count = 0;
assert(str);
while (*str != '\0')
{
str++;
count++;
}
return count;
}
指针-指针的方法实现
获取字符串首地址,然后使用两个指针相减获取到相差的元素,最后返回给my_strlen
size_t my_strlen1(const char* str)
{
char* start = str;
char* end = str;
assert(str);
while (*str != '\0')
{
str++;
end = str;
}
return end - start;
}
函数递归
size_t my_strlen2(const char* str)
{
if (*str == '\0')
{
return 0;
}
else {
return 1 + my_strlen2(str + 1);
}
}
int main()
{
char arr[] = "abcdef";
//size_t num = my_strlen(arr);
//int num = my_strlen1(arr);
int num = my_strlen2(arr);
printf("%d\n", num);
return 0;
}