第一种:使用计数器
size_t my_strlen(const char* str)
{
assert(str);
size_t count = 0;
while (*str)
{
count++;
str++;
}
return count;
}
第二种:递归(没有创建临时变量)
size_t my_strlen(const char* str)
{
assert(str);
if (*str == '\0')
{
return 0;
}
return 1 + my_strlen(str + 1);
}
第三种:指针-指针
size_t my_strlen(const char* str)
{
assert(str);
char* ret = (char*)str;
while (*str)
{
str++;
}
return str - ret;
}