关于C语言的字符串的。

设有字符串A=“He has 钱!”,则该字符串的长度为( )。为什么?

A. 9
  B. 10
  C. 11
  D. 8
另外,字符数组长度和字符串长度有什么区别和联系?怎么计算?

选择 B
不论是空字符" _",还是字母,它的长度都为1。而汉字所占的长度为2.
so:1、对于字符串“He has 钱!”它的长度为10;
2、对于字符数组,在C语言里,字符数组会在末尾自动添加‘\0’,其长度也为1.
所以,字符数组长度 == 字符串长度 + 1.

谢谢!
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-02-12
“钱”是一个WCHAR,即Unicode,sizeof(WCHAR) = 2;所以钱占用两个char的内存
所以这个字符串的长度是10,字符数组长度是11(包含字符串结束符\0)
strlen是就求一个C风格字符串(char字符串)长度的函数,其返回值是抛弃字符串结束符\0其余字符个数
他俩的区别就是字符数组长度包括结束符,字符串长度抛弃结束符
第2个回答  2012-02-12
答案是B
一共有以下字符:
‘H’、‘e’、(空格)、‘h’、‘a’、‘s‘、(空格)、’钱‘、 ‘!’。
其中“钱”占两个字符。加起来一共是10个字符。
经编译,长度确实为10.
第3个回答  2012-02-13
答案选B 钱算两个CHAR
字符数组得多加一个结束标记符"\0",所以得多占一个CHAR
字符数组长度=字符串长度+1
第4个回答  2012-02-12
是10个,钱 算2个,其他的你应该可以数出来,最后还有\0,但是不算有效的,所以是10个
相似回答