ASCII的处理
ASCII 是 “American Standard Code for Information Interchange”(美国信息交换标准代码)的缩写,它是一套以拉丁字母为基础的计算机字符编码标准,用 7 位二进制数表示 128 个字符。这 128 个字符由
- 33 个控制字符(0–31 及 127)
- 95 个可打印字符(32–126,包括空格、数字、字母及标点) 组成。
由于仅需 7 位,早期系统在第 8 位上可留作奇偶校验或硬件扩展,因此 ASCII 曾被广泛用于电传打字机、终端以及早期网络。
后期发展扩充的字符集,包括ISO-8859,GB2312等都保留的ASCII的部分.目前Unicode已经几乎完全取代,但仍然保留了ASCII所有的部分.
规律
表的前31个是用来排版的特殊字符,我们目前可以忽略这一部分.
接下来的是一串符号.
然后是数字.
一串符号.
大写字母.
一串符号.
小写字母.
一串符号.
关于编号
值得注意的是ASCII有不同进制的编码,在C语言中可以使用八进制,十进制和十六进制的编码.
字符串的比较
字符串的比较按照字典序(lexicographical order),也就是从左到右逐个字符比较(比较的是ASCII码值)->数字 < 大写字母 < 小写字母.
妙用
int idx = c - 'a'; // 'c' - 'a' == 2
int idx = c - 'A'; // 'F' - 'A' == 5
if (c >= 'A' && c <= 'Z') { /* 大写字母 */ }
else if (c >= 'a' && c <= 'z') { /* 小写字母 */ }