行业知识
【C语言】字母转换大小写的三种方法
个人主页:修修修也
所属专栏:C语言
⚙️操作环境:Visual Studio 2022
目录
方法一:库函数法
小写转换大写:toupper()函数
大写转换小写:tolower()函数
方法二:加减32法
小写转换大写:字符数据减32
大写转换小写:字符数据加32
方法三:位运算法
大小写转换:字符数据按位异或32
总结
方法一:库函数法
小写转换大写:toupper()函数
我们先来看toupper()函数的简介:
注意,toupper()函数的原型定义在头文件中,因此使用前需要包含该头文件。
下面我们来看toupper()函数的原型:
int toupper ( int c );
综上可知,当你向toupper()函数传输一个小写字母(实际是它的ASCII值)时,它会返回给你一个该字母对应的大写字母(实际是大写字母的ASCII值)。
我们试着在编译器中测试一下该函数:
可以看到,toupper()函数可以直接接收整形数据即字符的ASCII码值作为参数,然后返回相应大写字母的ASCII码值。
但要注意的是,作为toupper()函数的参数的整形只能识别一个字节的整形,即十进制0-255范围内,如果给定的整形大小超过一个字节,则会发生整形截断,即会自动截断后八位之外的数据。
还有需要注意的是,在发生截断的情况下,toupper函数返回的是截断后的原数据,而不会返回转换成大写后的数据.
如:
大写转换小写:tolower()函数
我们来看一下tolower()函数的简介:
可以发现,tolower()函数的函数和前面的toupper()函数非常相似,区别只是tolower()函数将大写转换成小写,而toupper()函数则负责将小写转换成大写。
使用方法完全和toupper()一样,如:
同样也会发生整形截断:
可以看到,在前面的演示中tolower()函数也发生了整形截断。
当我们会使用toupper()函数和tolower()函数后,下面我们来看一下如何不借助库函数来实现字母的大小写转换。即构造自己的字母大小写转换函数。
方法二:加减32法
小写转换大写:字符数据减32
ASCII码表:
由ASCII码表我们可以得知,要根据小写字母得到大写字母,只需将小写字母的值减去32即可,因此我们自己写一个函数负责将传入的符合小写字母区间的字母转换成大写字母,其余不符合的则返回原值,代码实现逻辑教简单.
如下:
#includeint my_toupper(int ch){if (ch >= 97 && ch = 65 && ch = 97) && (ch = 65) && (ch
上一篇:【C语言】字符串函数