strlen函数实现的是 传入一个字符串的首字符地址,求出一直到‘\0’的字符串长度
//strlen 模拟实现①指针移动
#include<stdio.h>
int my_strlen(char* arr)
{
int count = 0;
while(*arr)
{
count++;
arr++;
}
return count;
}
int main()
{
char arr[] = "abcdef*";
printf("%d",my_strlen(arr));
return 0;
}
//②递归求解
#include<stdio.h>
int my_strlen(char* arr)
{
if(*arr == '\0')
return 0;
return my_strlen(arr+1)+1;
}
int main()
{
char arr[] = "abcdef*";
printf("%d",my_strlen(arr));
return 0;
}
//③指针减指针(即地址减地址)
#include<stdio.h>
int my_strlen(char* arr)
{
char* temp = arr;
while(*arr)
arr++;
int num = (int)(arr-temp);
return num;
}
int main()
{
char arr[] = "abcdef*";
printf("%d",my_strlen(arr));
return 0;
}
strlen是一个比较基础的字符串函数,这三种自定义方法其实是三种思想,循环,递归和指针存储的地址的操作