C语言字母大小写互换的简单方法
字母的大小写互换其实很简单
回到最基本的数据的存储形式,从八位二进制角度去看大写字母和小写字母,你会发现它们的低四位是相同的,高四位有细微差别。
举例:
ASCII | DEC | BIN |
---|---|---|
‘A’ | 65 | 01000001 |
‘a’ | 97 | 01100001 |
‘B’ | 66 | 01000010 |
‘b’ | 98 | 01100010 |
‘X’ | 88 | 01011000 |
‘x’ | 120 | 01111000 |
仔细观察 发现是第六位不同!
大小写互换的方法
- 考虑到低四位完全相同 只用互换高四位的第六位就可以实现大小写互换
互换高四位的某一位而不改变低四位,我们联想到位运算中的按位异或
^
关于按位异或 详见按位异或由按位异或的知识,我们可以寻找一个数,使得任意的一个八位二进制数与它进行异或操作后,高四位的第六位01取反,低四位不变
回顾我们的目标 假如把
'A'
变为'a'
我们需要把01000001
变为01100001
,也就是把第六位的0
变为1
。我们找到这个数了!它的二进制是
00100000
十进制是32
01000001^00100000=01100001
,是不是很神奇?同理把小写字母'a'
变为'A'
也只需要把它与32进行按位异或操作就可以啦~
#include<stdio.h>
int main(){int i;char s[100];//读入字符串gets(s);for(i=0;s[i]!='\0';i++){if((s[i]>='A'&&s[i]<='Z')||(s[i]>='a'&&s[i]<='z'))s[i]^=32;//核心语句,实现字符串中字母的大小写互换}printf("%s",s);return 0;
}
样例输入->
Hello,Java!
样例输出->
hELLO,jAVA!
有没有很神奇呢!
欢迎关注我的博客 后续慢慢加入新内容,谢谢!
我的博客主页
C语言字母大小写互换的简单方法相关推荐
- c语言中字母大写转小写,C语言中字母大小写转换的简单操作
大写字母要转换小写字母,要怎么操作呢?而在C语言开发中,我们经常会遇到这样或者那样的问题,别着急,爱站技术频道为你细细道来C语言中字母大小写转换的简单操作. C语言tolower()函数:将大写字母转 ...
- C语言将一字符串输入到数组(长度不超过80)后将其输出, 将其中的英文字母大小写互换后再将整个字符串输出。
题目 将一字符串输入到数组(长度不超过80)后将其输出, 将其中的英文字母大小写互换后再将整个字符串输出. 代码 # include <stdio.h> # include <str ...
- r语言barplot函数图中加标签_R语言中绘制条形图的简单方法
原标题:R语言中绘制条形图的简单方法 条形图(bar chart)是用宽度相同的条形的高度或长短来表示数据多少的图形.它主要用来展示不同分类(横轴)下某个数值型变量(纵轴)的取值.在实际中,条形图主要 ...
- python判断质数_使用Python语言判断质数(素数)的简单方法讲解
本文主要向大家介绍了使用Python语言判断质数(素数)的简单方法,通过具体的实例让大家了解,希望对大家学习Python语言有所帮助. 质数又称素数.指在一个大于1的自然数中,除了1和此整数自身外,不 ...
- 使用python判断字母大小写的几种方法
方法一 使用Python中的内置函数isupper()和islower()来判断一个字母是否为大写或小写字母. # 获取用户输入 letter = input("请输入一个字母:" ...
- C语言——字母大小写转化小技巧
当我们使用C语言刷题的时候,有时候我们遇到这样的问题.例如:leetcode 709. 转换成小写字母.下面我将介绍一种方法解决此类问题的方法(不止局限这道题目,只是拿此题目举个栗子). 前言 在C语 ...
- 易语言 base64转图片的简单方法
介绍 验证码图片地址: data:image/png;base64.... 目的 将地址转换成图片 方法 需要使用精易模块 也可以使用精易模块的 编码_Base64转图片 命令 编码_Base64转图 ...
- c语言最小生成树,使用C语言实现最小生成树求解的简单方法
最小生成树Prim算法朴素版有几点需要说明一下. 1.2个for循环都是从2开始的,因为一般我们默认开始就把第一个节点加入生成树,因此之后不需要再次寻找它. 2.lowcost[i]记录的是以节点i为 ...
- java大小写转置,javascript 字符串 数字反转 字母大小写互换
// 符串abcd123ABCD456 怎么转换为 ABCD321abcd654 // 数字要倒序 小写转大写, 大写转小写 Array.prototype.reverse = function() ...
最新文章
- Missing separate debuginfos, use: debuginfo-install
- android 串口通信_使用UART与ZYBO进行通信常用外设设计方案
- 新手入门python的注意事项_【新手入门Python语言的方法】
- 哈希表的大小为何最好是素数
- VC++开发演算稿式计算语言-可编程绘图的计算器
- spark中local模式与cluster模式使用场景_Spark内核及通信框架概述-针对面试(后面有源码分析)...
- JAVA 读取shp数据,shp导入,导出工具
- python 爬取视频真实地址_java_爬虫_从腾讯视频播放界面爬取视频真实地址
- 如何免费下载百度文库文章
- macOS 配置Android SDK 环境变量
- ubuntu安装QQ教程
- C++_OpenCV模板匹配
- 用python做股票因子分析_因子分析(by+alphalens)
- 数学不好是原罪——高等数学笔记(汇总版)
- SpringBoot中这样定义全局异常处理器Global Exception Handler
- 数据守护集群之MPP主备集群
- 树莓派如何接硬盘_树莓派3 挂载外接硬盘
- 如何判断您是否拥有32位或64位版本的Google Chrome浏览器
- 图像分割常见Loss
- 【秋招纪实录】一篇特别正经的【TCL】求职经验分享
热门文章
- 各位亲朋好友新春大吉
- Rate Limiting Algorithms (限流算法)
- 生死看淡,不服就GAN(八)----WGAN的改进版本WGAN-GP
- Pycharm安装打包工具
- 网线直接接电脑可以上网,但是接到无线路由器上,就不能上网了
- 人工智能架构图和产业链构成
- 怎么让termux运行Java_在安卓手机上通过 Termux 运行编译/运行 .NET 应用
- 最近很火的爱心网页(html+css+js),表白必备
- 论文笔记:Template-free Prompt Tuning for Few-shot NER
- Anaconda Prompt到底是什么? 和系统自带cmd命令提示窗区别又是什么?