前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【深度解析第一讲】大小写字母如何转换?

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

作者头像
程序员互动联盟
发布2018-03-15 14:21:01
6670
发布2018-03-15 14:21:01
举报

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

方法一

使用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; }

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

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2015-11-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员互动联盟 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档