strlen库函数的三种实现方式
#include <stdio.h>
#include <assert.h>//断言头文件
int main ()
{
char arr[] = "abcdefg";
int len = my_strlen3(arr);
printf("%d\n", len);
return 0;
}
1.计数器计数法
//计数器计数
int my_strlen1(const char* str)
{
assert(str);
int count = 0;
while (*str != '\0')
{
str++;
count++;
}
return count;
}
2.指针相减法
//指针相减法
int my_strlen2(const char* str)
{
assert(str);
const char *start = str;
while (*str != '\0');
{
str++;
}
return str - start;
//或者
//while(*str++ != '\0');
//return str - start - 1;
}
3.递归暴力法
//递归实现
int my_strlen3(const char* str)
{
assert(str);
if (*str == '\0')
return 0;
else
return 1 + my_strlen3(str + 1);
}
以上都是小白创作,还请大佬指教
本文详细介绍了三种常见的strlen库函数实现方法:计数器逐字符计数、通过指针差计算字符串长度以及递归实现。每种方法的代码示例和原理剖析有助于理解字符串操作的基本技巧。
2433

被折叠的 条评论
为什么被折叠?



