main函数部分
#include<stdio.h>
#include<assert.h>
int main()
{
char arr[] = "Hello World!";
size_t len = my_strlen(arr);
printf("%zu\n", len);
return 0;
}
strlen->计算字符串中’\0’之前的字符个数
计算器法
size_t my_strlen(const char* str)
{
assert(str);
size_t count = 0;
while(*str)
{
str++;
count++;
}
return count;
}
指针 - 指针
size_t my_strlen(const char* str)
{
assert(str);
const char* start = str;
while(*str)
{
str++;
}
return (size_t)(str - start);
}
递归
size_t my_strlen(const char* str)
{
assert(str);
if(*str == '\0')
{
return 0;
}
return 1 + my_strlen(str+1);
}
如果*str是’\0’就返回0,作为递归终止条件