解析
首先,大家都知道strlen这个库函数是专门用来求字符串,在这里我们就相当于写出我们自己的strlen函数。所以我觉得,我们可以从strlen函数求字符串长度的原理入手。
strlen函数是计算到\0结束计算字符串长度的,所以我们可以设一个字符数组,然后遍历到元素为\0时停止计算。
代码
#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[] = "loveJacksonxi";
int len = my_strlen(arr);
printf("%d\n", len);
return 0;
}
至此,我们这个函数代码就写出来了,大家可以看到非常的简单。
其实,我们还可以用到递归。
代码如下:
#include <stdio.h>
int my_strlen(char* arr)
{
if (*arr != '\0')
{
return 1 + strlen(arr + 1);
}
else
return 0;
}
int main()
{
char arr[] = "Jackson";
int len = my_strlen(arr);
printf("%d\n", len);
return 0;
}
这里,我还想提醒几点:当数组传参时,传过去的不是整个数组而是首元素的地址还有重要的是当元素为\0时停止计算长度这一点。
祝:“码”思泉涌,下“指”如有神。