当前位置: 首页 > article >正文

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()函数

使用<ctype.h>头文件

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

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

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

#include <stdio.h>
#include <ctype.h>

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)

使用头文件<ctype.h>

isupper():

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

使用头文件<ctype.h>

结语:

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

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

一起学习进步!!!


http://www.kler.cn/a/227217.html

相关文章:

  • 同构异机迁移方案2_目标服务器仅安装数据库软件scp物理文件
  • 图论练习4
  • 查看自己电脑是arm还是x64(x86);linux操作系统识别
  • pip安装tf-gpu=2.4的bug解决方案
  • 水面漂浮物监测识别摄像机
  • 前端工程化之:webpack2-2(内置插件)
  • 【考研408】计算机网络笔记
  • 「Kafka」消费者篇
  • JSR303参数校验-SpringMVC
  • STM32单片机的C语言基础
  • 红日靶场1搭建渗透
  • Linux权限管理
  • C语言中大小写字母的转化
  • 抖音已揽收怎么退货?怎么取消订单?
  • uniapp开发一个交流社区小程序
  • CSS的复合选择器
  • 04-OpenFeign-请求超时机制
  • ArcGIS学习(二)属性表的基本操作
  • vulhub中Adminer远程文件读取漏洞复现(CVE-2021-43008)
  • 《C++ Primer Plus》《2、开始学习C++》