当前位置:首页 » 《休闲阅读》 » 正文

c语言-大小写字母的转换

2 人参与  2024年10月10日 14:40  分类 : 《休闲阅读》  评论

点击全文阅读


       

目录

方法一:库函数直接转换

1、toupper的测试代码

2、tolower的测试代码 

方法二:通过修改ASCII码值转换 

1、自己实现大写转小写

 2、自己实现小写转大写

结语 


前言:

        在使用c语言写代码时,通常会遇到很多将大小写字母相互转换的场景,比如刷题的时候,常常会让我们将一个字符串中的小写字母转换成大写字母,或者将大写转换成小写,并且规定让我们手撕整个转换过程,不得使用库函数进行转换,这时候往往没有头绪。

        其实转换字母最常用的方法有两种:1、直接调用库里的转换函数。2、对字母的ASCII码值进行加减。具体如下文。

方法一:库函数直接转换

        在c语言的库函数中,提供了两个函数可以直接实现大小写字母的转换,即:tolower和toupper。

int tolower ( int c );//接收一个参数,返回一个整形int toupper( int c );//接收一个参数,返回一个整形

        1、tolower是将大写字母转换成小写字母,返回转换后的小写字母的ASCII值,若传给c的参数本身就是一个小写字母,则该函数不做任何处理直接返回c的值。

        2、toupper是将小写字母转换成大写字母,返回转换后的大写字母的ASCII值,若传给c的参数本身就是一个大写字母,则该函数不做任何处理直接返回c的值。

        3、并且tolower和toupper不对非字母的字符做任何处理。

1、toupper的测试代码

#define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>#include <ctype.h>int main(){int i = 0;char str[] = "Test String!!";char c;while (str[i]){c = str[i];//把字符串中的字符给到cc = toupper(c);//将c转换成大写字母并重新赋予cputchar(c);//输出ci++;}return 0;}

         运行结果:

2、tolower的测试代码 

#define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>#include <ctype.h>int main(){int i = 0;char str[] = "Test String!!";char c;while (str[i]){c = str[i];//把字符串中的字符给到cc = tolower(c);//将c转换成小写字母并重新赋予cputchar(c);//输出ci++;}return 0;}

        运行结果:

方法二:通过修改ASCII码值转换 

        因为字母本身属于字符,而字符在计算机中是以整形的形式存储的,即字母是以ASCII值的形式存在计算机中的,因此只要搞清楚大小写字母的ASCII码值是多少,然后对他们直接进行加减即可改变字母。(总结:因为字母的存储形式是ASCII码值,因此可以直接对字母进行加减等操作

        如下图ASCII码表所示:

        根据上图所示,所有的大写字母和小写字母他们的ASCII码值都是连续的,所以我们可以直接 用区间的形式来取到所有大写字母的范围,和所有小写字母的范围。

        比如:c >= 'a' && c <= 'z'结果为真,那么c肯定是小写字母中的一个。相反,c >= 'A' && c <= 'Z'结果为真,则c肯定是大写字母中的一个。有了以上的思路就可以自己实现大写字母和小写字母的转换了。

1、自己实现大写转小写

#define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>int main(){int i = 0;char str[] = "Test String!!";char c;while (str[i]){c = str[i];//把字符串中的字符给到cif (c >= 'A' && c <= 'Z')//只对大写字母做处理{c += 32;//大写字母+32=对应的小写字母}putchar(c);i++;}return 0;}

        运行结果:

 2、自己实现小写转大写

#define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>int main(){int i = 0;char str[] = "Test String!!";char c;while (str[i]){c = str[i];//把字符串中的字符给到cif (c >= 'a' && c <= 'z')//只对小写字母做处理{c -= 32;//小写字母-32=对应的大写字母}putchar(c);i++;}return 0;}

        运行结果:

结语 

        以上就是关于字母大小写如何转换的讲解,在做题中一般都是让我们自己手撕一个转换过程,其转换思路就在于字母的ASCII码值之间加减关系,当然库里提供的两个函数也需要了解,因为有些场景下可以使用库函数直接转换,那么直接调用tolower和toupper会很方便,最后希望本文可以给你带来更多的收获!!!


点击全文阅读


本文链接:http://zhangshiyu.com/post/170057.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最新文章

  • 半堂花夜渡空城,裴砚泽沈诺柠完本_完本半堂花夜渡空城,裴砚泽沈诺柠
  • 灿若春阳完结版全文_沈墨小香猪张脸全文完结版阅读
  • 大雁南飞人不归结局+番外(沈砚之姜曼殊)结局_(大雁南飞人不归结局+番外大雁南飞人不归结局+番外全书结局)结局列表_笔趣阁(沈砚之姜曼殊)
  • 夕拾难觅朝阳苏亦葵厉晏行完本_夕拾难觅朝阳(苏亦葵厉晏行)
  • [老婆豪掷五百万给初恋,重生后我拒当提款机]人气小说未删减节选_唐欣顾承泽萧然小说节选推荐
  • 半堂花夜渡空城免费在线(裴砚泽沈诺柠)_半堂花夜渡空城免费在线
  • 大雁南飞人不归结局+番外优质全章(姜曼殊沈砚之)_大雁南飞人不归结局+番外优质全章姜曼殊沈砚之
  • [绿茶室友邀请我参加祭祖仪式,却不知我是老祖]人物羁绊章节精选_李岚老祖宗苏婧节选免费试读
  • (番外)+(全书)兰因絮果,爱恨全如玉碎+后续+结局(长乐肖风行)全书在线_兰因絮果,爱恨全如玉碎+后续+结局免费列表_笔趣阁(长乐肖风行)
  • 完结文被绿茶养女夺走真千金身份后,我杀疯了列表_完结文被绿茶养女夺走真千金身份后,我杀疯了(苏楠苏意安+)
  • 刹那芳华顾,褚墨景迟文月+番外+后续_刹那芳华顾,褚墨景迟文月+番外+后续列表
  • 被瘾症折磨的可怜校花免费结局+后续(张团团仁川)全书免费_(张团团仁川)被瘾症折磨的可怜校花免费结局+后续后续(张团团仁川)

    关于我们 | 我要投稿 | 免责申明

    Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1