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.mzph.cn/news/666343.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深入理解Istio服务网格(一)数据平面Envoy

一、服务网格概述(service mesh) 在传统的微服务架构中&#xff0c;服务间的调用&#xff0c;业务代码需要考虑认证、熔断、服务发现等非业务能力&#xff0c;在某种程度上&#xff0c;表现出了一定的耦合性 服务网格追求高级别的服务流量治理能力&#xff0c;认证、熔断、服…

文档更新记录

vue-cli3搭建项目_vite cli3搭建项目-CSDN博客 1.8 eslint_"plugins: [\"import\"], // 解决动态导入import语法报错问题 --> -CSDN博客 1.8

N-142基于springboot,vue停车场管理系统

开发工具&#xff1a;IDEA 服务器&#xff1a;Tomcat9.0&#xff0c; jdk1.8 项目构建&#xff1a;maven 数据库&#xff1a;mysql5.7 项目采用前后端分离 前端技术&#xff1a;vueelementUI 服务端技术&#xff1a;springbootmybatis-plus 本项目分为普通用户和管理员…

基于若依的ruoyi-nbcio流程管理系统自定义业务回写状态的一种新方法(一)

更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码&#xff1a; https://gitee.com/nbacheng/ruoyi-nbcio 演示地址&#xff1a;RuoYi-Nbcio后台管理系统 更多nbcio-boot功能请看演示系统 gitee源代码地址 后端代码&#xff1a; https://gitee.com/nbacheng/n…

深度学习驱动下的自然语言处理进展及其应用前景

文章目录 每日一句正能量前言技术进步应用场景挑战与前景自然语言处理技术当前面临的挑战未来的发展趋势和前景 伦理和社会影响实践经验后记 每日一句正能量 一个人若想拥有聪明才智&#xff0c;便需要不断地学习积累。 前言 自然语言处理&#xff08;NLP&#xff09;是一项正…

FreeRTOS动态 / 静态创建和删除任务

本篇文章记录我学习FreeRTOS的动态 / 静态创建和删除任务的知识。希望我的分享能给你带来不一样的收获&#xff01;文中涉及FreeRTOS创建和删除任务的API函数&#xff0c;建议读者参考以下文章&#xff1a; FreeRTOS任务相关的API函数-CSDN博客 目录 ​编辑 一、FreeRTOS动态创…

“超越摩尔定律”,存内计算走在爆发的边缘

目录 ​编辑 前言 在后摩尔时代提高计算机性能 六类存内计算技术 1&#xff09;XYZ-CIM 2&#xff09;XZ-CIM 3&#xff09;Z-CIM 4&#xff09;XY-CIM 5&#xff09;X-CIM 6&#xff09;O-CIM 各种CIM技术的原理 1&#xff09;XYZ-CIM&#xff1a;NVM有状态逻辑 2…

ES6-数组的解构赋值

一、数组的解构赋值的规律 - 只要等号两边的模式相同&#xff0c;左边的变量就会被赋予对应的值二、数组的解构赋值的例子讲解 1&#xff09;简单的示例&#xff08;完整的解构赋值&#xff09; 示例 //基本的模式匹配 // a&#xff0c;b,c依次和1&#xff0c;2&#xff0c…

libevent源码解析--event,event_callback,event_base

1.概述 实现一个基础tcp网络库&#xff0c;以基于tcp网络库构建服务端应用&#xff0c;客户端应用为起点&#xff0c;我们的核心诉求有&#xff1a; a. tcp网络库管理工作线程。 b. tcp网络库产生服务端对象&#xff0c;通过启动接口&#xff0c;开启服务端监听。进一步&…

解决gitee文件大小超过100MB——分片上传(每片<100MB)

Gitee 上传文件大小限制为 100MB。如果需要上传大于 100MB 的文件&#xff0c;可以按照以下步骤操作&#xff1a; 1. 将大文件分割成多个小于 100MB 的子文件。 2. 使用 Gitee 的命令行工具 git 分别将这些子文件添加到仓库中。 3. 在仓库中创建一个新文件&#xff08;例如&am…

记录学习--java abstract与interface使用区别

1.abstract使用场景 abstract提供了一套功能代码&#xff0c;这套功能代码可以直接用&#xff0c;也可以细微的改变&#xff0c;但是abstract不希望这套功能都改变了&#xff0c;这可能是一套标准功能。 2.interface使用场景 interface不提供任何功能&#xff0c;提供协议解…

【C生万物】初始C语言

&#x1f4da;博客主页&#xff1a;爱敲代码的小杨. ✨专栏&#xff1a;《Java SE语法》 | 《数据结构与算法》 | 《C生万物》 ❤️感谢大家点赞&#x1f44d;&#x1f3fb;收藏⭐评论✍&#x1f3fb;&#xff0c;您的三连就是我持续更新的动力❤️ &#x1f64f;小杨水平有…

【微服务】skywalking自定义链路追踪与日志采集

目录 一、前言 二、自定义链路追踪简介 2.1 自定义链路追踪应用场景 2.2 链路追踪几个关键概念 三、skywalking 自定义链路追踪实现 3.1 环境准备 3.2 集成过程 3.2.1 导入核心依赖 3.2.2 几个常用注解 3.2.3 方法集成 3.2.4 上报追踪信息 四、skywalking 自定义日志…

【国产MCU】-CH32V307-通用同步/异步收发器(USART)

通用同步/异步收发器(USART) 文章目录 通用同步/异步收发器(USART)1、USART介绍2、USART驱动API介绍3、USART使用示例3.1 轮询方式数据发送与接收3.2 中断方式数据发送与接收3.3 DMA方式数据发送与接收CH32V307提供了3组通用同步/异步收发器(USART1、USART2、USART3),以…

如何从 iPhone 上恢复永久删除的照片

您的 iPhone 上缺少照片吗&#xff1f;讽刺的是&#xff0c;iPhone 的许多高级功能可能正是这个问题如此普遍的原因。幸运的是&#xff0c;还有很多方法可以从 iPhone 恢复已删除的照片&#xff0c;具体取决于您设备的设置方式。 本文涵盖了所有这些内容。该过程根据您的具体情…

微信公众号迁移公证书怎么办?

公众号迁移有什么作用&#xff1f;只能变更主体吗&#xff1f;公众号迁移的作用可不止是变更主体哦&#xff01;还可以把原公众号的粉丝、文章素材、违规记录、留言功能、名称等迁移到新的公众号上。这样一来&#xff0c;你就可以实现公众号的公司主体变更、粉丝转移、开通留言…

MySQL数据库备份方法

一、数据库备份的分类 1.按不同维度分类 从物理与逻辑的角度&#xff0c;备份可分为 物理备份&#xff1a;对数据库操作系统的物理文件&#xff08;如数据文件、日志文件等&#xff09;的备份 物理备份方法 冷备份&#xff08;脱机备份&#xff09;&#xff1a;是在关闭数…

使用maven对springboot项目进行瘦身分离jar的多种处理方案

文章目录 前言一、方案一&#xff08;修改自带的spring-boot-maven-plugin插件&#xff09;二、方案二&#xff08;使用spring-boot-thin-maven-plugin插件&#xff09;总结 前言 springboot项目打包一般我们都使用它自带的spring-boot-maven-plugin插件&#xff0c;这个插件默…

编程笔记 html5cssjs 075 Javascript 常量和变量

编程笔记 html5&css&js 075 Javascript 常量和变量 一、JavaScript 变量二、JavaScript 常量三、示例&#xff1a;小结&#xff1a; 在JavaScript中&#xff0c;变量和常量是用来存储数据的占位符。它们的主要区别在于可变性&#xff1a;变量的值可以改变&#xff0c;而…