【C语言】字母转换大小写的三种方法

这篇具有很好参考价值的文章主要介绍了【C语言】字母转换大小写的三种方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

🦄个人主页:修修修也

🎏所属专栏:C语言

⚙️操作环境:Visual Studio 2022

c语言大小写转换,c语言,开发语言,学习


目录

方法一:库函数法

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

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

方法二:加减32法

📌小写转换大写:字符数据减32

📌大写转换小写:字符数据加32

方法三:位运算法

📌大小写转换:字符数据按位异或32

总结


方法一:库函数法

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

我们先来看toupper()函数简介

c语言大小写转换,c语言,开发语言,学习

 注意,toupper()函数的原型定义在头文件<ctype.h>中,因此使用前需要包含该头文件

下面我们来看toupper()函数的原型

int toupper ( int c );

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

我们试着在编译器中测试一下该函数:

c语言大小写转换,c语言,开发语言,学习

 可以看到,toupper()函数可以直接接收整形数据即字符的ASCII码值作为参数,然后返回相应大写字母的ASCII码值

但要注意的是,作为toupper()函数的参数的整形只能识别一个字节的整形,即十进制0-255范围内,如果给定的整形大小超过一个字节,则会发生整形截断,即会自动截断后八位之外的数据

还有需要注意的是,在发生截断的情况下,toupper函数返回的是截断后的原数据,而不会返回转换成大写后的数据.

如:

c语言大小写转换,c语言,开发语言,学习c语言大小写转换,c语言,开发语言,学习

 c语言大小写转换,c语言,开发语言,学习


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

我们来看一下tolower()函数的简介

c语言大小写转换,c语言,开发语言,学习

 可以发现,tolower()函数的函数和前面的toupper()函数非常相似,区别只是tolower()函数大写转换成小写,而toupper()函数则负责将小写转换成大写

使用方法完全和toupper()一样,如:

c语言大小写转换,c语言,开发语言,学习

同样也会发生整形截断

c语言大小写转换,c语言,开发语言,学习

c语言大小写转换,c语言,开发语言,学习

可以看到,在前面的演示中tolower()函数也发生了整形截断

当我们会使用toupper()函数和tolower()函数后,下面我们来看一下如何不借助库函数来实现字母的大小写转换。即构造自己的字母大小写转换函数


方法二:加减32法

📌小写转换大写:字符数据减32

ASCII码表:

c语言大小写转换,c语言,开发语言,学习

由ASCII码表我们可以得知,要根据小写字母得到大写字母,只需将小写字母的值减去32即可,因此我们自己写一个函数负责将传入的符合小写字母区间的字母转换成大写字母,其余不符合的返回原值,代码实现逻辑教简单.

如下:

#include<stdio.h>
int my_toupper(int ch)
{
	if (ch >= 97 && ch <= 122)
		return ch - 32;
	else
		return ch;
}

int main()
{
	char ch = 'a';
	ch=my_toupper(ch);
	printf("%c", ch);

	return 0;
}

代码运行效果:

c语言大小写转换,c语言,开发语言,学习

c语言大小写转换,c语言,开发语言,学习

 c语言大小写转换,c语言,开发语言,学习

可见,该函数具有成功将小写字母转换成大写的功能。


📌大写转换小写:字符数据加32

同理可知,要根据大写字母得到小写字母,只需将大写字母的值加上32即可,因此我们自己写一个函数负责将传入的符合大写字母区间的字母转换成小写字母,其余不符合的返回原值,该部分代码实现逻辑与前文类似.

如下:

#include<stdio.h>
int my_tolower(int ch)
{
	if (ch >= 65 && ch <= 90)
		return ch + 32;
	else
		return ch;
}

int main()
{
	char ch = 'A';
	ch = my_tolower(ch);
	printf("%c", ch);

	return 0;
}

 代码运行效果:

c语言大小写转换,c语言,开发语言,学习

该函数同样能接收符合条件的字符ASCII码值完成转换

c语言大小写转换,c语言,开发语言,学习

不符合条件时,返回原值

c语言大小写转换,c语言,开发语言,学习


方法三:位运算法

📌大小写转换:字符数据按位异或32

在位运算的层面上,我们可以借助按位异或^ , 相同为0,不同为1)来帮我们实现字母大小写的转换.

如:

c语言大小写转换,c语言,开发语言,学习

 反之用97^32=65.

因此该方法可以实现传入大写字符转换成小写字符传入小写字符转换成大写字符的效果.

代码如下:

int my_move(int ch)
{
	if (((ch >= 97) && (ch <= 122)) || ((ch >= 65) && (ch <= 90)))
		return ch ^ 32;
	else
		return ch;
}

int main()
{
	char ch1 = 'a';
	ch1=my_move(ch1);

	char ch2 = 'A';
	ch2=my_move(ch2);

	char ch3 = 97;
	ch3=my_move(ch3);

	char ch4= 65;
	ch4=my_move(ch4);

	char ch5 = 322;
	ch5=my_move(ch5);

	printf("%c\n", ch1);
	printf("%c\n", ch2);
	printf("%c\n", ch3);
	printf("%c\n", ch4);
	printf("%c\n", ch5);

	return 0;
}

代码运行效果如下:

c语言大小写转换,c语言,开发语言,学习

 可以看到,该函数同样可以达到之前大小写转换的效果。


总结

以上就是字母大小写转换的三种方法的相关内容,希望这篇博客能对大家有所帮助,欢迎大佬们留言或私信与我交流.

学海漫浩浩,我亦是行人!我们一起学习,一起进步!

相关文章推荐

【C语言】判断字符类型的三种方法

【C语言】qsort()函数详解:能给万物排序的神奇函数

【C语言】整形数据和浮点型数据在内存中的存储

【C语言】结构体的大小是如何计算的(结构体对齐)


c语言大小写转换,c语言,开发语言,学习文章来源地址https://www.toymoban.com/news/detail-698179.html


到了这里,关于【C语言】字母转换大小写的三种方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C++——转换字母的大小写

    首先我们要知道,C++字符的所有转换形式都是依照ASCII码来的。 转换规则:大写字母=小写字母-32 程序实例 程序代码 运行结果   如果要将大写字母转换为小写字母,则小写字母=大写字母+32  

    2024年02月07日
    浏览(48)
  • java中字母、字符串,输入小写输出大写,输入大写输出小写、大小写转换

    思路: 1、利用“大小写字母之间正好相差32”这一特点                                                       2、用  toLowerCase()、toUpperCase() 字符串自带的方法  提示: Java中没有.nextChar()。 所以要读取char,我们使用  .next().charAt(0)  1、 输入小写输

    2024年02月07日
    浏览(47)
  • 【Excel】WPS单元格快速转换表格字母大小写

    使用WPS Office打开表格,选择需要处理的单元格或单元格区域。 依次点击「会员专享」选项卡 —「智能工具箱」。 再点击「格式」—「大小写」,选择一种大小写转换方式即可。

    2024年02月08日
    浏览(36)
  • 使用python判断字母大小写的几种方法

    使用Python中的内置函数 isupper() 和 islower() 来判断一个字母是否为大写或小写字母。 用户输入一个字母,程序使用isupper()和islower()函数判断字母是否为大写或小写,并输出相应的信息。如果用户输入了除字母以外的字符,程序会输出一个错误信息。 使用ASCII码值来判断字母大

    2024年02月04日
    浏览(40)
  • C语言学习之统计英文字符串中26个字母大小写出现的次数

    实例要求: 编写C语言代码,统计出英文字符串中26个字母大写和小写 出现的次数 ; 输入输出如下所示: 实例分析: 1.对字符串用 while循环或者for循环 进行遍历,找到 26个英文字母大小写 ; 2.将所有英文字母大写或者小写都转换成 ASCII值 ,进行运算; 3.封装相应的功能函数

    2024年02月10日
    浏览(32)
  • 【蓝桥杯备赛Java组】语言基础|竞赛常用库函数|输入输出|String的使用|常见的数学方法|大小写转换

    🎥 个人主页:深鱼~ 🔥收录专栏:蓝桥杯 🌄欢迎 👍点赞✍评论⭐收藏 目录 一、编程基础 1.1 Java类的创建  1.2 Java方法  1.3 输入输出  1.4 String的使用 二、竞赛常用库函数 1.常见的数学方法 2.大小写转换 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,

    2024年01月21日
    浏览(50)
  • 【蓝桥杯备赛Java组】第一章·语言基础|竞赛常用库函数|输入输出|String的使用|常见的数学方法|大小写转换

    🎥 个人主页:深鱼~ 🔥收录专栏:蓝桥杯 🌄欢迎 👍点赞✍评论⭐收藏 目录 一、编程基础 1.1 Java类的创建  1.2 Java方法  1.3 输入输出  1.4 String的使用 二、竞赛常用库函数 1.常见的数学方法 2.大小写转换 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,

    2024年01月19日
    浏览(46)
  • Qt之QByteArray大小写字母转化

    QByteArray类对象若为带大小写字母的字符串,可调用函数toUpper()和toLower()实现字母大小写 的转换。函数toUpper()的原型声明如下: QByteArray toUpper(); 函数很简单,没有参数,直接返回转换成大写字母后的字节数组。在转换过程中,碰到已经是大写的字母就忽略,用法举例如下:

    2024年01月16日
    浏览(40)
  • 26个字母大小写的ASCII码值

    \\\'0\\\'=48; 小写: a → 97,b → 98,c → 99,d → 100,e → 101,f → 102, g → 103,h → 104,i → 105,j → 106,k → 107,l → 108, m → 109,n → 110,o → 111,p→ 112,q → 113,r → 114, s → 115,t → 116,u → 117,v → 118,w → 119,x → 120,y → 121,z → 122 大写: A → 65,B → 66,C

    2024年02月11日
    浏览(36)
  • JSON.toJSONString首字母大小写问题

    开发过程中遇到的,对象转字符串时,有个字段首字母是大写的,转换之后就变成了小写,在这里记录下 不管是自带JSON,还是阿里的fastJson,都会将属性的字段首字母改为小写 通过注解 @JSONField 可以解决该问题,如下; 优点:少量的话简单方便 缺点:入侵性强,懒得每个加

    2024年02月09日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包