测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看
B26

字符型:char、ASCII 与单双引号

引入

章前总览 除了整数和小数,程序还要处理字母、符号。char 存一个字符;内存里其实存的是它的 ASCII 编号,因此字符可以和整数互相运算。

逻辑链条:

  • C1:char 与 ASCII(了解即可)
  • C2:字符常量用单引号
  • C3:字符串用双引号,不能赋给 char

1 C1. char 存的是编号

char 变量占 1 个字节。存 'A' 时,不是把字形画进内存,而是存 ASCII 值 65。

和整数“差不多”

  • 字符与整数存储方式类似,可以互相赋值、一起运算。
  • int a = 'A'; 后,a 的值是 65。
  • 一级只需了解 ASCII;不必背整张表。记住:大写比对应小写“小” 32。

</> 定义与赋值

char c = 'E';
int a = 'A';   // a = 65

2 C2. 字符常量与转义字符

英文单引号括住一个字符,就是字符常量:'a''#''%''D'

转义字符

  • 以反斜杠 \ 开头的特殊字符叫转义字符。
  • 最常见:'\n' 表示换行(和 endl 类似用途)。

3 C3. 字符 ≠ 字符串

英文双引号括起来的是字符串常量(可以有 0、1 或多个字符)。

补充说明

不推荐

char c1 = "Hello";  // ×
char c2 = "A";      // × 哪怕只有一个字符也不行

问题:双引号是字符串,不能赋给 char。

推荐写法

char c = 'A';   // √ 一个字符
cout << "Hello"; // √ 字符串用双引号输出

口诀:一个字符单引号;一串文字双引号。

小结

字符题三件套:

char c;  cin >> c;
'A' 是字符,ASCII=65
"A" 是字符串,不能赋给 char
c-32 可把小写变大写(后文练习)
里程碑达成:

下一节用圆周率、折扣和字符菱形做三道案例。