一、ASCII码
ASCII (American Standard Code for Information Interchange),中文名:美国信息交换标准代码,是一种用数字表示字母和符号的标准。
标准的ASCII码共有128个,利用数字0-127来表示字母和符号,其中:
-
0~31及127是控制字符(不会显示出来)
-
48~57为0到9十个阿拉伯数字
-
65~90为26个大写英文字母
-
97~122号为26个小写英文字母
-
其余为一些标点符号
ASCII码表
代码 | 字符 | 代码 | 字符 | 代码 | 字符 | 代码 | 字符 |
---|---|---|---|---|---|---|---|
0 | NUL 空字符 | 32 | 空格 | 64 | @ | 96 | ` |
1 | SOH 标题开始 | 33 | ! | 65 | A | 97 | a |
2 | STX 正文开始 | 34 | " | 66 | B | 98 | b |
3 | ETX 正文结束 | 35 | # | 67 | C | 99 | c |
4 | EOT 传输结束 | 36 | $ | 68 | D | 100 | d |
5 | ENQ 请求 | 37 | % | 69 | E | 101 | e |
6 | ACK 收到通知 | 38 | & | 70 | F | 102 | f |
7 | BEL 响铃 | 39 | ’ | 71 | G | 103 | g |
8 | BS 退格 | 40 | ( | 72 | H | 104 | h |
9 | HT 水平制表符 | 41 | ) | 73 | I | 105 | i |
10 | LF 换行键 | 42 | * | 74 | J | 106 | j |
11 | VT 垂直制表符 | 43 | + | 75 | K | 107 | k |
12 | FF 换页键 | 44 | , | 76 | L | 108 | l |
13 | CR 回车键 | 45 | - | 77 | M | 109 | m |
14 | SO 不用切换 | 46 | . | 78 | N | 110 | n |
15 | SI 启用切换 | 47 | / | 79 | O | 111 | o |
16 | DLE 数据链路转义 | 48 | 0 | 80 | P | 112 | p |
17 | DC1 设备控制1 | 49 | 1 | 81 | Q | 113 | q |
18 | DC2 设备控制2 | 50 | 2 | 82 | R | 114 | r |
19 | DC3 设备控制3 | 51 | 3 | 83 | S | 115 | s |
20 | DC4 设备控制4 | 52 | 4 | 84 | T | 116 | t |
21 | NAK 拒绝接收 | 53 | 5 | 85 | U | 117 | u |
22 | SYN 同步空闲 | 54 | 6 | 86 | V | 118 | v |
23 | ETB 结束传输块 | 55 | 7 | 87 | W | 119 | w |
24 | CAN 取消 | 56 | 8 | 88 | X | 120 | x |
25 | EM 媒介结束 | 57 | 9 | 89 | Y | 121 | y |
26 | SUB 代替 | 58 | : | 90 | Z | 122 | z |
27 | ESC 换码 | 59 | ; | 91 | [ | 123 | { |
28 | FS 文件分隔符 | 60 | < | 92 | \ | 124 | | |
29 | GS 分组符 | 61 | = | 93 | ] | 125 | } |
30 | RS 记录分隔符 | 62 | > | 94 | ^ | 126 | ~ |
31 | US 单元分隔符 | 63 | ? | 95 | _ | 127 | DEL 删除 |
- 观察上表可以得到一个规律:数字 < 大写字母 < 小写字母
二、C语言中的char类型
char类型用来表示一个字符,C语言中的char类型在计算机中是以ASCII码的形式来存储的。
C语言中为char类型赋值的方式有三种:
-
单引号中直接加字符
char a = 'a';
注意:
- 一定要使用单引号
- 这些字符必须是128个ASCII中的,例如:char a = ‘云’; 就不会正确显示,因为ASCII码中不包括中文的定义;
-
直接使用ASCII码
// "a"的ASCII码为97 char a = 97;
-
使用 ‘\ASCII的8进制’ 的形式
char a = '\141'; // "a"的ASCII码为97,转换为8进制就是141
注意:一定要使用单引号
三、转义符
计算机语言中定义了一些特殊字符,可用转义符"\"加字母或数字来表示它们
前面用"\"加ASCII码的八进制来表示字符,这也是转义符的一种
表:常用的转义符
转义符 | 意义 | ASCII码 |
---|---|---|
\n | 换行(LF) ,将当前位置移到下一行开头 | 10 |
\r | 回车(CR) ,将当前位置移到本行开头 | 13 |
\t | 水平制表(HT) (跳到下一个TAB位置) | 9 |
\v | 垂直制表(VT) | 11 |
\\ | 代表一个反斜线字符\ | 92 |
\’ | 代表一个单引号字符 | 39 |
\" | 代表一个双引号字符 | 34 |
\? | 代表一个问号 | 63 |
\0 | 空字符(NUL) | 0 |
四、C语言输入/输出字符
C语言中可以利用getchar和putchar函数进行字符的输入和输出:
getchar() 获取输入的单个字符
putchar() 输出一个字符
小练习:
编写一个程序,将小写字母转换为大写字母,最后输出。
建议先思考并试着编写程序,然后再回来看下面的解析。
解析:
观察ASCII码表:
a – 97, A – 65
b – 98,B --66
c-- 99,C --67 …
我们可以发现一个规律,即:小写字母的ASCII码总是大于大写字母,且互相对应的大小写字母间的ASCII码相差32
所以这个程序可以这样写:
- 获取输入的字符
- 将这个字符减去32并输出
如果输入的字符不是小写字母怎么办呢?没关系,我们暂时可以不用考虑这个问题,等到后面再对这个程序进行优化。
示例代码:
#include<stdio.h>
void main()
{
printf("请输入一个小写字母:");
char a; // 声明一个char型变量a
a = getchar(); // 将输入的字符赋给a
a = a - 32; // 让a减去32
putchar(a); // 输出变量a
putchar('\n');
printf("程序结束");
}
运行结果:
好了,文章到这里就结束了,我们下一节再见
每周五晚20:00更新