【深度解析第一讲】大小写字母如何转换?

有网友提出怎么转换英文字母的大小写,这个也是编程中非常常见的需求,这个问题其实很简单,很多有点基础的朋友都会解决,下面我给出三种常用的方法给初学者参考。

方法一

使用C语言标准函数完成,代码如下:

char *tolow1(char *str)

{

int i, n = strlen(str);

for (i=0; i<n; i++) { str[i] = tolower(str[i]); }

return str; }

方法二

使用ASCII码值之差,所有的小写字母比大写字母大32,代码如下:

char *tolow2(char *str) { int i, n = strlen(str);

for (i=0; i<n; i++) { if (str[i] >= 'A' && str[i] <= 'Z') str[i] += 32; }

return str; }

方法三

使用ASCII码值的特征,大写字母与小写字母相差的就是这一位,而且不像方法二那样去做判断,效率明显比上面这个高,小写变大写也可以类似用&实现。代码如下:

char *tolow3(char *str) { int i, n = strlen(str);

for (i=0; i<n; i++) { str[i] |= 0x20; }

return str; }

下面我们分别调用这三个函数:

int main(int argc, char *argv[]) { char str1[] = "BeJiNG"; char str2[] = "TiAnMen"; char str3[] = "WuXiNgHqI";

printf("old: %s, %s, %s\n", str1, str2, str3); printf("new: %s, %s, %s\n", tolow1(str1), tolow2(str2), tolow3(str3));

return 0; }

三种常见的方法运行后如下:

三种方法都达到了大小写转换的目的。

原文发布于微信公众号 - 程序员互动联盟(coder_online)

原文发表时间:2015-11-27

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏软件开发 -- 分享 互助 成长

多维数组的理解

要清楚的理解多维数组,需要先理解指针的算术运算和数组名的含义。 1、指针的算术运算     指针的算术运算与普通的类型的算术运算是不同的,编译器会在指针的算术运...

249100
来自专栏IT可乐

Java数据结构和算法(九)——高级排序

  春晚好看吗?不存在的!!!   在Java数据结构和算法(三)——冒泡、选择、插入排序算法中我们介绍了三种简单的排序算法,它们的时间复杂度大O表示法都是O(...

40860
来自专栏用户2442861的专栏

Python之逻辑运算和缩进和选择if

作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢!

7910
来自专栏Fundebug

JavaScript的值传递和引用传递

11230
来自专栏烂笔头

Python标准库笔记(10) — itertools模块

34660
来自专栏技术小站

c++(二)

算数运算符:+,-,*,/,%,++,--  进行算数运算时,如果存在溢出,则把溢出的部分拿掉(浮点型的难以预测),如 int i=0xffffffff,j;j...

11410
来自专栏梧雨北辰的开发录

Swift学习:泛型

本篇将详细总结介绍Swift泛型的用法; Swift泛型代码让你能够根据自定义的需求,编写出适用于任意类型、灵活可重用的函数及类型。它能让你避免代码的重复,用...

9120
来自专栏九彩拼盘的叨叨叨

JavaScript 数组练习题

** 题 1:查找数组对象中 age 大于 18 对象 ** 编写函数 filterAdult,满足

10410
来自专栏我是攻城师

Java里面关于数组拷贝的几种方式

31540
来自专栏游戏开发那些事

【c++】标准模板库STL入门简介与常见用法

STL(Standard Template Library)标准模板库,主要由容器、迭代器、算法、函数对象、内存分配器和适配器六大部分组成。STL已是标准C++...

10710

扫码关注云+社区

领取腾讯云代金券