mshd.net
当前位置:首页 >> C strlEn \0 >>

C strlEn \0

不一定,可能有很多\0 比如: #include #include int main(void) { char x[]="\0\0\0\0\0\0\0"; printf("%d\n",strlen(x)); return 0; } 结果一样是0

1 #include 2 #include 3 4 int main() 5 { 6 printf("%d\n",sizeof("\0")); 7 printf("%d\n",strlen("\0")); 8 9 } 运行结果: [root@squidx ~]# ./a.out 2 0 1 sizeof计算的字符的字节数,同时还要加上最后面的'\0' 就相当于两个'\0',所以为2 ...

strlen仅仅计算字符个数,不包括最后的\0。 解析说的包含结尾符是不当的。 至于减一是因为数组是从0开始的,最后一个元素的下标是字符个数减一。选择B是正确的。

strlen实际上是,从参数表示的地址往后找,找到第一个'\0',即串尾。然后计算'\0'至首地址的“距离”,即隔了几个字符,从而得出长度。 char x[]={0xBC,0xDD,0xCA};中,实际上是定义了一个char型的数组,而由于x[0],即0xBC开始往后找,一直到0xCA...

7 strlen(s) 碰到结束符就会停止计数,而且它的计数是不包括结束符的所以在这里是7.

因为strlen函数会以“\0”为结束,读到“\0”即结束了,也就是只统计了A,一个长度。 拓展: 如果是strlen("A\0123\0ASD"); 统计结果为3,因为\012为八进制数10所对应的ASCII嘛值,共有A、\012、3三个字符被统计!

返回值是2 \0作为结束符,表示字符号串结尾的 strlen求字符串长度的,以\0为结束符的,\0不计算到字符串中。

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

是这样的。 C语言中的字符串实际上是字符数组,即char类型的数组。不过特殊约定以\0作为结束符。 strlen是C语言中字符串函数之一,功能为求字符串的长度。即字符串中有效字符的个数,不包括结尾的\0. 要调用strlen,需要引用头文件string.h。 比...

书上没有错 这里-1是因为数组的下标是从0开始的

网站首页 | 网站地图
All rights reserved Powered by www.mshd.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com