char 保存一个字符编码。ASCII 为常见英文字符、数字、符号和控制字符规定了 0–127 的数值。
字符与整数互转
把字符转换为整数可以看到编码;把 0–127 的整数转换为 char 可以得到对应 ASCII 字符。数字字符并不等于数字本身,例如 '7' - '0' 才得到整数 7。
#include <iostream>
using namespace std;
int main() {
char letter = 'A';
int code = static_cast<unsigned char>(letter);
char next = static_cast<char>(code + 1);
cout << letter << " = " << code << ", next = " << next << endl;
return 0;
}互动实验
完整 ASCII 图谱
访问权限免费
自由点击 0–127 中的任意字符,右侧会显示它的字符、十进制、十六进制和二进制编码。
遍历 ASCII
控制字符没有可见字形,因此程序应把 0–31 和 127 单独标记。
#include <iostream>
using namespace std;
int main() {
for (int value = 0; value <= 127; value++) {
if (value >= 32 && value <= 126) {
cout << value << " " << static_cast<char>(value) << endl;
} else {
cout << value << " control" << endl;
}
}
return 0;
}知识测验
题目
字符 'A' 的 ASCII 十进制值是多少?
动手练习
实现 ASCII 分类器
读取一个 ASCII 字符,判断它属于大写字母、小写字母、数字、空白字符还是其他字符。
- 读取一个字符并保留它的整数编码。
- 使用字符范围判断数字和英文字母。
- 对空格、制表符和换行进行单独分类并输出结果。