关于‘\0',"\0",‘0’,“0”以及空格之间的区别和字符串输入到字符数组的问题

1. '\0'和 "\0"

"\0"表示是一个字符串(数组),它包含两个字符,并且都是结束符\0。'\0'表示单一字符,即转义字符。

输出的时候,"\0"和空串相当,不输出任何东西,ASCII码为0的字符‘\0’即控制字符Null输出一个空格。对于C,C++原生字符串(包括字符串字面值),其中的第一个"\0",意味着字符串结束,如果串的第一个字符就是‘\0’,那么当作空串输出,"\0"就相当于""。

2. '0'和"0"

"0"是字符串常量,字符串常量是由一对双引号括起的字符序列。如:"123"。'0'是字符常量,字符串常量和字符常量是不同的量。

  • 字符常量由单引号括起来;字符串常量由双引号括起来
  • 字符常量只能是单个字符;字符串常量则可以含一个或多个字符

3.'\0'和'0'

它们都是字符,在C/C++语言中,字符是按其所对应的ASCII码来存储的,一个字符占一个字节。第一个ASCII码是0,对应的字符是Null,其实就是'\0',即空字符。判断一个字符串是否结束的标志就是看是否遇到'\0','\0'表示字符串结束。字符'0'对应的ASCII码是48,通常用字符转化为数字会用到,比如要将'7'转换为数字7,即 '7'-'0'。但是字符常量也可以像整数一样在程序中参与相关运算。如:'7'-3;此时要注意它是把'7'转换成对应的ASCII码再运算

4.'\0'和空格

空格是一个字符,本质上和'a'、'b'、'c'一样,ASCII码是32。'\0'也是一个字符,ASCII码是0;'\0'是空白,打印显示出来和空格一样。就像'\t',显示出来也是空格一样。

  • int a=' ';//a=32。
  • int a='\0';//a=0。

5.字符串输入到字符数组中的问题

char s[10];
std::cin>>s;
如果将"abcd"输入到s中,则s[4]='\0'

猜你喜欢

转载自blog.csdn.net/u011750466/article/details/80206411