C语言中空格,空字符,字符数组结束符的区别
2016-06-02 15:46
591 查看
转载:http://blog.csdn.net/leichelle/article/details/8117018
空格符号和空字符是不一样的,在ASCII里面,空格(space)符号的ASCII码是0x20,而空字符是0x0, 2个是完全不一样的2个字符呵呵.
空字符 一般来描述一个字符串的结尾,其实是控制符的一种,但不能理解为没有字符,应该理解为代表什么都没有的字符.好比回车0x0A和换行0x0D虽然不显示,但是也是控制字符的一种.(这些字符以前是用于打印机的,所以很多都没有用了)
字符串的概念:在C语言中,字符串是指由若干个有效字符(其中包括字母、数字、转义字符、等)组成的系列,以'\0'作为字符串结束标志。'\0'是一个“空操作”字符,它不做任何操作,只是一个标志。'\0'的代码值为0,它不计入串的长度。
还有这里需要注意下在接受字符串的时候,如果用scanf来接收的话,字符串中不能含有空格,否则将以空格作为串的结束符。如果你键入得是harry potter 那么实际上scanf只能获取harry这个单词。所以要接收空格的话可以用gets()这个函数。
补充:C语言中字符串结束符'\0'就是0.
》》'\0'就是8位的00000000,因为字符类型中并没有对应的这个字符,所以这么写。在数值类型里就代表数字0。 补充:这个你要去学下基础的,数值类型存储时,最高位决定正负号,其他位都为0可不就是0了么? '\0'是转译字符,意思是告诉程序,这不是字符0,我要的是数字0的2进制直接放进来,因为acsii码的0可不是00000000
空格符号和空字符是不一样的,在ASCII里面,空格(space)符号的ASCII码是0x20,而空字符是0x0, 2个是完全不一样的2个字符呵呵.
空字符 一般来描述一个字符串的结尾,其实是控制符的一种,但不能理解为没有字符,应该理解为代表什么都没有的字符.好比回车0x0A和换行0x0D虽然不显示,但是也是控制字符的一种.(这些字符以前是用于打印机的,所以很多都没有用了)
字符串的概念:在C语言中,字符串是指由若干个有效字符(其中包括字母、数字、转义字符、等)组成的系列,以'\0'作为字符串结束标志。'\0'是一个“空操作”字符,它不做任何操作,只是一个标志。'\0'的代码值为0,它不计入串的长度。
还有这里需要注意下在接受字符串的时候,如果用scanf来接收的话,字符串中不能含有空格,否则将以空格作为串的结束符。如果你键入得是harry potter 那么实际上scanf只能获取harry这个单词。所以要接收空格的话可以用gets()这个函数。
补充:C语言中字符串结束符'\0'就是0.
》》'\0'就是8位的00000000,因为字符类型中并没有对应的这个字符,所以这么写。在数值类型里就代表数字0。 补充:这个你要去学下基础的,数值类型存储时,最高位决定正负号,其他位都为0可不就是0了么? '\0'是转译字符,意思是告诉程序,这不是字符0,我要的是数字0的2进制直接放进来,因为acsii码的0可不是00000000
相关文章推荐
- C语言之内存对齐浅谈
- Python与C++交互
- LeetCode 153. Find Minimum in Rotated Sorted Array
- 标准C++中的string类的用法总结
- c++ vector begin(),end(),rbegin(),rend()问题
- C语言实现字符串的查找和替换
- 第10周 C语言及程序设计提高例程-38 main函数的参数
- C++ 引用
- 链接库(血泪史)
- C++中auto型的详细解释
- 小范围排序(C++)
- C语言+SDL2 图形化编程
- C/C++程序员必须熟练应用的开源项目
- C语言练习篇-5二维数组行列交换及找最大值
- 图 单源最短路径求解 Dijkstra算法 C++ 实现
- C语言学习篇-7数组、二维数组、高维数组
- C++矩阵处理工具——Eigen
- C语言的指针(进阶篇章之一)
- c++学习
- g++编译c++11