在c语言中,众所周知有strlen可以求字符串长度,而本文意在介绍其他的求字符串长度
如下
#include<string.h>
int main()
{
//strlen 求字符串长度
int len = strlen("abcdef");
printf("%d\n", len);
return 0;
}
可以得出此字符串的长度为 6
本文意在介绍其他的求字符串长度 因为在一些编程题目中 显然是禁用”strlen“函数
方法一
构建函数”my_strlen“,并实现定义,从第一个字母找”\0“,直到找到”\0“为止
int my_strlen(char*str)
{
int count = 0;
while (*str != '\0')
{
count++;
str++;
}
return count;
}
int main()
{
int len = my_strlen("abcdef");
printf("%d\n", len);//6
return 0;
}
仍可以可以求出此字符串的长度为 6
方法二
此方法运用了指针的简单知识 进行指针相减
首先也是定义函数”my_strlen“也是从一个字母找”\0“,直到找到”\0“为止
而这个方法主要的还是 str-start 这一部
start数组名就是数组的第一个元素
而最后的str是把所有元素从第一个开始找查”\0“
相减就是中间的个数
int my_strlen(char*str)
{
char*start = str;
while (*str != '\0')
{
str++;
}
return str - start;//这里运用指针相减
}
int main()
{
int len = my_strlen("abcdef");
printf("%d\n", len);//6
return 0;
}
运行结果觉如下