strlen函数——求字符串长度函数,返回在字符串中 '\0' 前的字符个数,参数指向的字符必须以 '\0' 结尾,返回值为size_t类型(无符号整型)。
strlen函数的模拟实现有三种方法:
1.计数器
2.指针-指针
3.递归
第一种方法:计数器
#include <stdio.h>
int my_strlen(const char* str)
{
int count = 0;
while (*str != '\0')
{
str++;
count++;
}
return count;
}
int main()
{
int ret = 0;
char arr[] = "abcdef";
ret = my_strlen(arr);
printf("%d\n", ret);
return 0;
}
第二种方法:指针-指针
#include <stdio.h>
int my_strlen(const char* str)
{
const char* p = str;
while (*str != '\0')
{
str++;
}
return str - p;
}
int main()
{
int ret = 0;
char arr[] = "abcdef";
ret = my_strlen(arr);
printf("%d\n", ret);
return 0;
}
第三种方法:递归
#include <stdio.h>
int my_strlen(const char* str)
{
if (*str == '\0')
return 0;
else
return 1 + my_strlen(str + 1);
}
int main()
{
int ret = 0;
char arr[] = "abcdef";
ret = my_strlen(arr);
printf("%d\n", ret);
return 0;
}