字符
用单引号表示字符
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+32
是 char
+ 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