一、利用计数器来返回字符串长度
//最基础的方法就是一直读到\0停止然后使用计数器来返回长度
size_t my_strlen(const char* str)
{
int count = 0;
while(*str)
{
count++;
str++;
}
return count;
}
int main()
{
char arr[] = "abcdef";
size_t len = my_strlen(arr);
printf("%zd\n", len);
return 0;
}
二、利用指针的运算来返回字符串长度
我们要知道:指针减指针,得到的结果的绝对值是指针和指针之间的元素个数!!!
//利用指针相减代表指针间元素个数来返回字符串长度
size_t my_strlen(const char* str)
{
const char* p = str;
while(*str)
{
str++;
}
return str-p;
}
int main()
{
char arr[] = "abcdef";
size_t len = my_strlen(arr);
printf("%zd\n", len);
return 0;
}
三、使用递归返回字符串长度
读到\0我们return 0;
如果读到的不是\0就可以return 1+my_strlen(str + 1);
下面给出代码
//不使用临时变量,求字符串长度 - 递归
size_t my_strlen(const char* str)
{
if(*str == '\0')
return 0;
else
return 1 + my_strlen(str + 1);
}
nt main()
{
char arr[] = "abcdef";
size_t len = my_strlen(arr);
printf("%zd\n", len);
return 0;
}