跳到主要内容

字符

用单引号表示字符

char a='b';
char b='A';
char c='0'; //字符0 不是数字0

ASCII码

字符在内存中是以编码的形式存在的,英文字母和英文符号是用ASCII码编码的

  • '0' 的ASCII码是 48
  • 'A' 的ASCII码是 65
  • 'a' 的ASCII码是 97
char a=65;//直接用ASCII码赋值 相当于a='A' 
cout<<a<<char(67);//输出AC
//char() 表示强制类型转换 将int转换成char 通过ASCII码转换

强制类型转换

大小写转换

你可以观察出这样的规律

'a'=97 'A'=65 'a'-'A'=32
'b'=98 'B'=66 'b'-'B'=32
'c'=99 'C'=67 'c'-'C'=32
... ...
相同字母大小写之间差32

char a='c';
a-=32; //减32转大写
cout<<a;//输出大写C
注意运算结果类型提升
char a='D';
cout<<a+32;//输出100 输出的不是d

因为 a+32char + int ,其中int类型大于char,运算结果是int类型的,输出就输出 'd' 的ASCII码了

数字字符和数字的转换

1'1' 的区别是什么?首先类型不同,一个是 int ,一个是 char。其次内存中的值也不同。

  • 1 在内存中是1
  • '1' 在内存中是49

你能发现他和大小写之间的关系一样,数字和数字字符之间相差是48,而48就是 '0' 的ASCII码。

char a='9';
cout<<(a-'0')*9;//输出81