一、计数器的方法
//1.计数器的方法
int my_strlen_1(char* str)
{
assert(str);
int count = 0;
while (*str != '\0')
{
count++;
str++;
}
return count;
}
int main()
{
char arr[] = "abcdef";
int ret = my_strlen_1(arr);
printf("%d\n", ret);
return 0;
}
二、递归的方法
//2.递归的方法
int my_strlen_2(char* str)
{
assert(str);
if (*str!='\0')
{
return 1 + my_strlen_2(str + 1);
}
return 0;
}
int main()
{
char arr[] = "abcdef";
int ret = my_strlen_1(arr);
printf("%d\n", ret);
return 0;
}
三、指针的方法
//3.指针的方法
int my_strlen_3(char* str)
{
assert(str);
char* tmp = str;
while (*str != '\0')
{
str++;
}
return str - tmp;
}
int main()
{
char arr[] = "abcdef";
int ret = my_strlen_1(arr);
printf("%d\n", ret);
return 0;
}
总结:
以上三种方法都可以实现strlen函数的模拟。