目录
1. 循环遍历
使用循环遍历字符串中的每个字符,直到遇到字符串的结尾标志’\0’。每次遍历时计数器加1,最后返回计数器的值即可。
int my_strlen(const char* str)
{
int len = 0;
while (str[len] != '\0')
{
len++;
}
return len;
}
2. 递归调用
使用递归函数来实现字符串长度的计算。当字符串为空或者遇到结尾标志’\0’时,返回0;否则将字符串缩减一个字符传递给递归函数,返回值加上1。
int my_strlen(const char* str)
{
if (*str == '\0')
{
return 0;
}
else
{
return 1 + my_strlen(str + 1);
}
}
3. 指针计算
使用指针进行计算,初始化一个指针指向字符串的首地址,并且遍历整个字符串,直到遇到结尾标志’\0’。每次循环指针向后移动一个字符的大小,最后返回指针的偏移量。
int my_strlen(const char* str)
{
const char* ptr = str;
while (*ptr != '\0')
{
ptr++;
}
return ptr - str;
}
以上是三种常见的模拟strlen函数的方法,每种方法都可以正确计算出字符串的长度。可以根据实际情况选择其中一种方法来使用