1.通过递归的形式实现:
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int my_strlen(char* arr)
{
int count = 0;
if (*(arr) == '\0')
{
return 0;
}
return my_strlen(arr + 1) + 1;
}
int main()
{
char arr[] = "abcdef";
int r = my_strlen(arr);
printf("%d", r);
return 0;
}
2.通过两个指针相减的方式实现:
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int my_strlen(char* arr)
{
int count = 0;
char* arr1 = arr;
while (1)
{
if (*arr1 == '\0')
break;
arr1++;
}
return arr1 - arr;
}
int main()
{
char arr[] = "abcdef";
int r = my_strlen(arr);
printf("%d", r);
return 0;
}
3.通过计数器的方法实现:
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int my_strlen(char* arr)
{
int count = 0;
while (*arr != '\0')
{
count++;
arr++;
}
return count;
}
int main()
{
char arr[] = "abcdef";
int r = my_strlen(arr);
printf("%d", r);
return 0;
}
如果需要提高可维护性和准确性,可在其中加入关键字const和assert,我是正在学习C语言的铭哥,共同进步吧。