char ss[5]="hello";
printf("len:%d\n",strlen(ss));
为什么得到的len是6呢???
题目中的代码应该会报错.
C语言中隐含用字符 '\0' 标志字符串常量的结束,因此需要定义长度为6的字符数组。
即:
char ss[6] = "hello";
printf("len:%d\n", strlen(ss)); //输出为len:5
strlen函数在计算长度时不包含结束字符,所以len应为5.
如果对您有帮助,请点击采纳答案好吗,谢谢~~
C语言的字符串还有字符串结束符号,‘/0’又叫空字符。
在用数组保存字符串时,会默认在后面下/0(ascii 码的值为0的字符),如果数组的长度不够时则不会在后面存储,strlen函数内部实现会从头一直往后
找直到到/0,截止,不包括/0,你的代码strlen函数会出现发生越界的情况。
还要加上一个“/0”
都是正解………lol