c语言大小写转换

⭐个人主页:黑菜钟-CSDN博客

 专栏:c/c++_黑菜钟的博客-CSDN博客

前言:

这篇博客主要介绍3种有关大小写转换的方法,以及如何判断大小写的扩展c语言库函数

1.方法

1.1.ASCII编码法

在ASCII编码表中,小写和大写总是差一个数字,大写A和小写a差32,大写Z和小写也差32

  • 字符A~Z的ASCII码值从65~90
  • 字符a~z的ASCII码值从97~122
  • 对应的大小写字符(a和A)的ASCII码值的差值是32

因此:小写字母的ASCII码值-32就能得到对应的大写字母的ASCII码值

1.2.位运算法

该方法可以实现传入大写字符转换成小写字符传入小写字符转换成大写字符这样双重效果

字符数据按位异或32

当最简单的65也就是对应ASCII编码表的A

01000001和36对应的00100000按位取反结果为01100001(相同取0不相同取1)

01100001转换为10进制为97,对应ASCII编码表为a,小写字母

1.3.库函数法

使用库函数直接转换

小写转换大写:toupper()函数

使用头文件

C 库函数 int toupper(int c) 把小写字母转换为大写字母。

如果 c 有相对应的大写字母,则该函数返回 c 的大写字母,否则 c 保持不变。返回值是一个可被隐式转换为 char 类型的 int 值。

意味着当向toupper()函数传输一个小写字母(实际是它的ASCII值)时,它会返回给你一个该字母对应的大写字母(实际是大写字母的ASCII值)

#include 
#include 

int main()
{
   int i = 0;
   char c;
   char str[] = "runoob";
   
   while(str[i])
   {
      putchar (toupper(str[i]));
      i++;
   }
   
  return(0);
}

注意事项:当在这个函数里写不同的内容会发生不一样的结果

直接接收整形数据(字符的ASCII码值)作为参数时返回相应大写字母的ASCII码值

当接收整型大小超过一个字节发生截断自动截断后八位之外的数据

因为作为toupper()函数的参数只能识别一个字节的整形,即在十进制0-255范围内。

⭐注意:在发生截断的情况下,toupper函数返回的是截断后的原数据不会返回转换成大写后的数据

大写转换小写:tolower()函数

tolower和toupper使用方法基本一致,除了它是转换大写到小写的意外,都一样,也会发生截断,阶段范围也是后八位。

2.扩展

利用函数来判断大小写

islower():

C 库函数 int islower(int c) ,检查所传的字符是否是小写字母,如果 c 是一个小写字母,则该函数返回非零值(true),否则返回 0(false)

使用头文件

isupper():

判断参数c是否为大写字母,如果 c 是一个大写字母,则该函数返回非零值(true),否则返回 0(false)

使用头文件

结语:

希望这篇有关于c语言大小写转换博客能对大家有所帮助,欢迎大佬们留言或私信与我交流(●'◡'●)

 你要做冲出的黑马 而不是坠落的星星

一起学习进步!!!

你可能感兴趣的:(c/c++,c语言)