【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码表

代码字符代码字符代码字符代码字符
0NUL 空字符32空格64@96`
1SOH 标题开始33!65A97a
2STX 正文开始34"66B98b
3ETX 正文结束35#67C99c
4EOT 传输结束36$68D100d
5ENQ 请求37%69E101e
6ACK 收到通知38&70F102f
7BEL 响铃3971G103g
8BS 退格40(72H104h
9HT 水平制表符41)73I105i
10LF 换行键42*74J106j
11VT 垂直制表符43+75K107k
12FF 换页键44,76L108l
13CR 回车键45-77M109m
14SO 不用切换46.78N110n
15SI 启用切换47/79O111o
16DLE 数据链路转义48080P112p
17DC1 设备控制149181Q113q
18DC2 设备控制250282R114r
19DC3 设备控制351383S115s
20DC4 设备控制452484T116t
21NAK 拒绝接收53585U117u
22SYN 同步空闲54686V118v
23ETB 结束传输块55787W119w
24CAN 取消56888X120x
25EM 媒介结束57989Y121y
26SUB 代替58:90Z122z
27ESC 换码59;91[123{
28FS 文件分隔符60<92\124|
29GS 分组符61=93]125}
30RS 记录分隔符62>94^126~
31US 单元分隔符63?95_127DEL 删除
  • 观察上表可以得到一个规律:数字 < 大写字母 < 小写字母

二、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<stdio.h>

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

运行结果:
在这里插入图片描述


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

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

每周五晚20:00更新

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值