空格符号和空字符是不一样的,在ASCII里面,空格(space)符号的ASCII码是0x20,而空字符是0x0,2个是完全不一样的2个字符。
空字符一般来描述一个字符串的结尾,其实是控制符的一种,但不能理解为没有字符,应该理解为代表什么都没有的字符。好比回车0x0A和换行0x0D虽然不显示,但是也是控制字符的一种。(这些字符以前是用于打印机的,所以很多都没有用了)
字符串的概念:在C语言中,字符串是指由若干个有效字符(其中包括字母、数字、转义字符、等)组成的系列,以 '/0' 作为字符串结束标志。'/0' 是一个“空操作”字符,它不做任何操作,只是一个标志。'/0'的代码值为0,它不计入串的长度。
还有这里需要注意下在接受字符串的时候,如果用scanf来接收的话,字符串中不能含有空格,否则将以空格作为串的结束符。如果你键入得是harry potter 那么实际上scanf只能获取harry这个单词。所以要接收空格的话可以用gets()这个函数。
/0 表示结束符,比如C语言的数组中,最后有个默认的 /0 表示结束。
/0 不是空格,' ' 才是空格。
"" 就是“一个空的字符串”。
- char str[13];
- cin>>str;
- //运行时输入数据: How are you!
- cout<< str;
- //运行时输出数据: How
- //注意:输入时遇到空格便停止输入。
- char str[13] = "How are you!";
- cout<<str<<endl;
- //运行时输出数据:How are you!
- //输出时:遇到空字符串不会停止,遇到"/0"才会停止。
原帖:cpp.cm上的一篇文章,地址不记得了,抱歉。