用三种方法计算字符串的长度:
字符串:“abcd”,在储存的时候,字符串的最后一位会以一个终止符 ‘\0’,所以求取的就是终止符前的字符数。
1.计数器方式
通过设置一个计数器,然后用指针字符串从头扫描,每扫描一个字符计数器就+1,直到 ‘\0’ 就停止计数,返回计数器的结果,
int my_strlen1(char* str)
{
int count = 0;
while ('\0' != *str)
{
count++;
str++;
}
return count;
}
2.递归方法
通过对每次获取一个字符的方式对字符串进行递归,知道获取的字符为‘\0’就停止。
int my_strlen2(char* str)
{
if ('\0' != *str)
{
return (1 + my_strlen2(str + 1));
}
else
return 0;
}
3.指针方法
通过指针头*start指向字符串的首位,在设置个指针尾*end指向终止符 ‘\0’,通过end – start就可以计算出字符串的长度。
这里因为数组是一块连续的空间,所以可以使用 end – start 并且为char类型占一个byte所以相减的数就是其存有的字符数。
int my_strlen3(char* str)
{
char* start = str;
char* end = str;
while (*end != '\0')
{
end++;
}
return end - start;
}
最后整合所有代码:
//1.计数器方式
int my_strlen1(char* str)
{
int count = 0;
while ('\0' != *str)
{
count++;
str++;
}
return count;
}
//2.递归方式
int my_strlen2(char* str)
{
if ('\0' != *str)
{
return (1 + my_strlen2(str + 1));
}
else
return 0;
}
//3.指针方法
int my_strlen3(char* str)
{
char* start = str;
char* end = str;
while (*end != '\0')
{
end++;
}
return end - start;
}
int main()
{
char arr[] = "abcd";
int count1 = my_strlen1(arr);
int count2 = my_strlen2(arr);
int count3 = my_strlen3(arr);
printf("%d\n", count1);
printf("%d\n", count2);
printf("%d\n", count3);
}
运行结果:
这里有两个求字符串的方法:
strlen函数:专门争对字符串长度库函数<string.h>里头的函数,使用时需要引用库函数,其原理就是计算 ‘\0’之前的字符串长度。
sizeof:内存容量度量函数,不用进行引用,但其计算的是整个数组所含的所有字符包括 ‘\0’,因此使用时 -1 就为字符串长度。
这里也有一个C语言库函数的网站:cplusplus.com
进入这个网站,可以查看库函数以及其他C语言函数的使用方法,与其定义。
今天的文章计算字符串长度_字符串长度怎么自己数「建议收藏」分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/68825.html