目录
1. 引言
2. ASCII码表
2.1 控制字符
2.2 可显示字符
3. 字符操作
3.1 记住几个字符规律
3.2 打印能够显示的ASCII码
3.3 字母大小写转换
3.4 数字转数字字符
1. 引言
在电子计算机中,只能识别由 0 和 1 组成的一串串的二进制数字,为了将人类认识的文本字符和控制字符在计算机中存储,所以要对这些文本字符和控制字符进行编码存入计算机中,当需要将这些字符显示给我们人类看的时候,再对这些数字进行解码即可。
ASCII (American Standard Code for Information Interchange),美国信息交换标准代码,就是一种字符编码,用于将文本字符和控制字符与数字进行映射。
2. ASCII码表
2.1 控制字符
编码 [0, 31] 和 127 是控制字符,共 33 个字符是不可以打印的,其中编码 [0, 31] 这 32 个字符主要用于控制打印机等外围设备。
2.2 可显示字符
编码 [32, 126] 是可显示字符,也就是可以打印在显示器屏幕上的字符。
3. 字符操作
3.1 记住几个字符规律
- 大写字母 A ~ Z 的ASCII码 65 ~ 90
- 小写字母 a ~ z 的ASCII码 97 ~ 122
- 大写字母比小写字母的ASCII码小 32 (0b00100000,0x20) ,比如: char c = 'a',小写字母变大写字母,c = c - 32 得到,也可以做位与操作,c = c & 0b11011111 得到
- 数字字符 0 ~ 9 的 ASCII码 48 ~ 57,所以一个数字要转换成数字字符,只要将数字 加上 48 (0x30) 即可
- 字符串的终止符为 '\0',ASCII 码为 0
- 换行符 '\n' 的 ASCII码为 10 (0x0A)
3.2 打印能够显示的ASCII码
#include <iostream>
using namespace std;int main() {char tmp = '\0';for (int i = 32; i < 127; i++) {cout << (char)i;tmp = i % 15 == 0 ? '\n' : ' ';cout << tmp;}return 0;
}
3.3 字母大小写转换
#include <iostream>
using namespace std;int main() {char str[] = "Hello";// 都转为小写字母char *p = str;while (*p != 0) {if (*p >= 'A' && *p <= 'Z')*p += 32; // 小写字母比大写字母大32p++;}cout << str << endl;// 都转为大写字母p = str;while(*p != 0) {*p &= 0b11011111;p++;}cout << str << endl;return 0;
}
3.4 数字转数字字符
#include <iostream>
using namespace std;int main() {int tmp = 0;for (int i = 0; i < 10; i++) {tmp = i + 48;cout << (char)tmp << " ";}cout << endl;for (int i = 0; i < 10; i++) {tmp = i | 0b00110000;cout << (char)tmp << " ";}cout << endl;return 0;
}