c语言中算字符串的长度的时候,什么时候将\0加上什么时候不加啊???

如题所述

字符串的长度是不包括'\0'的

常见需要计算'\0'的情况是,以字符数组初始化一个字符串的时候,分配内存空间的情况。

char str[]="123456";

这时候数组str的大小需要计算'\0',也就是str有7个元素
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-05-26
标准库的函数是不算结束符的,他们认为遇到结束符字符串就结束了,也就是算长度是从第一个字符到第一个结束符之间的字符个数
第2个回答  2010-05-26
直接计算:
char a[2000];
int n;
gets(a);
n=strlen(a)//前面加上#include "string.h"
另一种是用循环计算:
for(int i=0,n=0;a[i]!='\0';i++)//直到结束标志,
n++;

c语言中字符串数组的长度,什么时候将'\\0'算上,什么时候不用算上啊?
一般意义上字符串数组的长度是不包括'\\0'的。如char a[]=“China”;这个长度就等于5。其实在系统中a占了6个位置,最后一个放了一个'\\0'。但是你如果你写char a[]={'C','h','i','n','a'};这个长度也是5,但系统不会在最后放'\\0',所以它在系统中只占5个位置。应该说,这个a只能...

C语言里哪个函数计算字符串长度要算\/0,哪个有不用啊?
\\0是字符串结束符,仅占用存储空间,但不算作有效的字符,系统函数strlen(char s[]),仅返回'\\0'之前的字符个数。而关键字sizeof返回的是真个字符串包含'\\0'在内占用的字节数。请注意strlen是函数,而sizeof是C\/C++关键字。

C语言中,为什么有的字符数组要后面要加\\0,有的不要加?
这个程序此处不加也没有问题的。因为接下来是先gets(str);然后再使用的。在函数内部定义的变量或数组,都是要先经过赋值后才能运用的,否则其中的值不确定。如果在程序代码中先经过赋值后再应用,那么在声明变量时可以不赋初值的。

关于C语言字符数组的赋值最后自动添加‘\\0’问题
c[5]只有5个空间无法完全容纳字符串"hello",因为这个字符串需要占用6个字符位置。所谓自动加'\\0'的问题是:你写在双引号中的,编译程序会认为是字符串,会自动为你添加上一个字符串结尾符号0,而不是运行时添加的。如果你用debug方式运行程序,调试环境自动会把你开设的char a[5];进行初始化0的...

c语言中字符串,为什么最后要加个‘\\0' ?
\\0'在c语言中代表着字符串的结束 在你不输入'\\0'的时候 字符串不知道已经读完了 还有继续向后读 读一个字节长度是?两个字节长度 就是烫 这是ascii值决定的 汉子是两个字节就不多说了 '\\0'的ascii值为(0x)00有时候如果未定义可能会出现一堆烫知道出现默认的00(也就是'\\0')才会...

C语言字符串长度不是实际长度+1吗
理论上差不多是这样,因为有个\\0的存在,但是也有特殊的情况 也就是说你申请的字符串数组全部填满,那么这个\\0也就没地方放了 所以字符串的长度是就有两个说法,一个是实际长度+1,另一个是全部填满 所以判断字符串末尾的时候,一个是两个判断连起来使用 如char a[10];if(a[i]='\\0'||i=...

c语言中strlen所输出的字符长度到底要不要再加1 (指'\\0')?
不用加1,有些情况加1,是把字符串看成了字符数组,才要加1的。strlen函数求的是字符串的实际长度,它是从开始到遇到第一个'\\0',如果你只定义没给它赋初值,结果不定,它会从aa首地址一直找下去,直到遇到'\\0'停止。

c语言求字符串长度里有空格算么
算。C语言字符串规定,字符串长度是指从字符串开始,到字符串结束符(\\0)为止,所有字符的总数,不包括\\0。这里的所有字符,同样包括不可见字符,自然包括空格。比如:字符串"for test"长度是8。

c语言中字符数组中最后为什么必须为\\0?
c语言中字符数组并没有规定最后一个字符为'\\0',甚至可以不包含'\\0',添加'\\0'作为结束标志是针对于c语言对字符串的处理而言的,因此,字符数组中最后一个字必须为‘\\0’是错误的。C语言中没有字符串类型,字符串是存放在字符型数组中的。在C语言中,是将字符串作为字符数组来处理的。为了测定...

请问C语言中,什么时候用'\\0'什么时候用'\\n'
C语言用字符串末端的零标识所有字符串的结束。当你输入文字My name is Julie时,不需要做什么特别的事情。C程序会自动加上null零。你永远看不到null零,但它确实存在。在内存中,只有当C程序遇到null零时才知道字符串结束了。说明:查看附录C时,你会找到ASCII表(在第2章中讨论)。第1个条目就是...

相似回答