【C】字母大写转换为小写的优雅写法

将大写字母转换为小写字母可以使用C标准库函数tolower。它的函数原型如下:
int tolower(int c);
tolower函数的实现可以在C标准库头文件<ctype.h>中找到。一般情况下,这个函数会被定义为一个宏,用来根据不同的字符编码(如ASCII码、Unicode等)将大写字母转换为小写字母。

普通写法:

#define tolower_p(c) ((c >= 'A' && c <= 'Z') ? (c + 'a' - 'A') : c)

在这个宏定义中,如果输入的字符c是大写字母,则通过与字符’a’和’A’之间的差值计算出该大写字母对应的小写字母,并返回它的ASCII码值;否则直接返回c的ASCII码值。

优雅写法:

#define tolower_y(c) ((c >= 'A' && c <= 'Z') ? c ^ 0x20 : c)

异或0x20即可

附ASCII码表
列出了ASCII码值从0到127之间的全部128个字符,包括控制字符、数字、字母、符号等。每行显示4个字符对应的ASCII码值和字符本身

ASCII码字符ASCII码字符ASCII码字符ASCII码字符
0NUL32(space)64@96`
1SOH33!65A97a
2STX34"66B98b
3ETX35#67C99c
4EOT36$68D100d
5ENQ37%69E101e
6ACK38&70F102f
7BEL3971G103g
8BS40(72H104h
9HT41)73I105i
10LF42*74J106j
11VT43+75K107k
12FF44,76L108l
13CR45-77M109m
14SO46.78N110n
15SI47/79O111o
16DLE48080P112p
17DC149181Q113q
18DC250282R114r
19DC351383S115s
20DC452484T116t
21NAK53585U117u
22SYN54686V118v
23ETB55787W119w
24CAN56888X120x
25EM57989Y121y
26SUB58:90Z122z
27ESC59;91[123{
28FS60<92\124
29GS61=93]125}
30RS62>94^126~
31US63?95_127DEL
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Z_shsf

来包瓜子嘛,谢谢客官~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值