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);
}
以上都是小白创作,还请大佬指教