ASCII码 字母大小写转换3种实用方法

方法一:位运算
要求ASCII编码的字符ch必须是字母,才能转换。
统一转换成大写:ch & 0b11011111, 简写:ch & 0xDF
统一转换成小写:ch | 0b00100000, 简写:ch | 0x20
 
A的ascii码是
65 -- 0x41 -- 0b0100 0001
Z对应是
90 -- 0x5A -- 0b0101 1010
 
a的ascii码是
97 -- 0x61 -- 0b0110 0001
z对应是
122 - 0x7A -- 0b0111 1010
 
说明:
不妨记最高位第7位,那么,
大写转小写:
A转换为a,变化的只有第5位,从0到1;
Z转换为z, 变化的只有第5位,从0到1;
也就是说,ch | 0b0010 0000,是把第5位置位,也就是大写转小写
 
小写转大写:
a转换为A,变化的只有第5位,从1到0;
z转换为Z, 变化的只有第5位,从1到0;
也就是说,ch &0b1101 1111,是把第5位清除,也就是小写转大写
 
方法二:常规方法
要求必须是字母,才能转换。
统一转换成大写:
if (ch <= 'z' && ch >= 'a')
    ch = ch + 'A' - 'a';
统一转换成小写:
if (ch <= 'Z' && ch >= 'A')
    ch = ch + 'a' - 'A'; // <=> ch |= 'a' - 'A'
 
方法三:调用库函数
库函数会自己识别输入字符是否为字母。
统一转换成大写:
toupper(ch);
统一转换成小写:
tolower(ch);
需要#include <ctype.h>
 
ASCII码 字母大小写转换3种实用方法ASCII码 字母大小写转换3种实用方法
 
REF

原文链接: https://www.cnblogs.com/fortunely/p/12794783.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;

也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬

    ASCII码 字母大小写转换3种实用方法

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/403161

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年4月21日 上午11:23
下一篇 2023年4月21日 上午11:24

相关推荐