c语言中,字符串的长度和所占的字节数一样吗?

如题所述

不一样,字符串是以\0结尾的,\0是不计入字符串长度,但是占了一个字节
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-03-27
在纯ASCII码下,字节数=字符串长度=字符个数,因为每个字符就一个字节。
在Unicode下,字节数/2=字符串长度=字符个数,因为每个字符都是2个字节。
在ASCII码与其它双字节字符系统混用时,字节数=ASCII码字符个数+双字节字符个数*2,
而此时字符串长度到底怎么统计就不好说了,
【有的语言如C语言,此时字符串长度=字节数,】
有的语言如JS,此时字符产长度=字符个数。
答案括号内,若有帮助,望采纳!
O(∩_∩)O,互相帮助,祝共同进步!追问

那么,char m[]="12345";
char n[]={'1','2','3','4','5'};
数组m是否比数组n长1?

追答

由C语言中对字符串的定义,在字符串最后以'\0'作为结束符。
因此m数组其实是{'1', '2', '3', '4', '5', '\0'}
n是'1','2','3','4','5'
即m数组的长度大于n的长度,前者6后者5,可以用sizeof编程查看

本回答被提问者采纳
第2个回答  2014-03-27
不一样,相差1,字符串长度=所占字节数-1
第3个回答  2015-10-10
在纯ASCII码下,字节数=字符串长度=字符个数,因为每个字符就一个字节。
在Unicode下,字节数/2=字符串长度=字符个数,因为每个字符都是2个字节。
在ASCII码与其它双字节字符系统混用时,字节数=ASCII码字符个数+双字节字符个数*2,
而此时字符串长度到底怎么统计就不好说了,
【有的语言如C语言,此时字符串长度=字节数,】
有的语言如JS,此时字符产长度=字符个数。
相似回答