【C语言从零到入门】第六节 ASCII码与字符类型

一、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类型赋值的方式有三种:

  1. 单引号中直接加字符

    char a = 'a';
    

    注意:

    • 一定要使用单引号
    • 这些字符必须是128个ASCII中的,例如:char a = ‘云’; 就不会正确显示,因为ASCII码中不包括中文的定义;
  2. 直接使用ASCII码

    // "a"的ASCII码为97
    char a = 97;
    
  3. 使用 ‘\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

所以这个程序可以这样写:

  1. 获取输入的字符
  2. 将这个字符减去32并输出

如果输入的字符不是小写字母怎么办呢?没关系,我们暂时可以不用考虑这个问题,等到后面再对这个程序进行优化。

示例代码:

#include

void main()
{
    printf("请输入一个小写字母:");
    char a; // 声明一个char型变量a
    a = getchar(); // 将输入的字符赋给a 
    a = a - 32; // 让a减去32
    putchar(a); // 输出变量a
    putchar('\n');
    printf("程序结束");
}

运行结果:
【C语言从零到入门】第六节 ASCII码与字符类型_第1张图片


好了,文章到这里就结束了,我们下一节再见

点击查看更多【C语言从零到入门】系列

每周五晚20:00更新

你可能感兴趣的:(C语言从零到入门)