标题:关于大写字母转换成小写字母的程序
只看楼主
一介草民
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2008-1-24
结帖率:100%
 问题点数:0 回复次数:9 
关于大写字母转换成小写字母的程序
下面这是大小写字母转换程序:
{char ch;
ch=getchar();
if(ch>='A'&&ch<='Z') putchar('a'+ch-'A')
}
if(ch>='A'&&ch<='Z')这语句可以理解,但是后面这个('a'+ch-'A')什么意思,为什么这样能转换大小写?能不能举个通俗易懂的例子?
搜索更多相关主题的帖子: 字母 小写 
2008-02-06 21:57
闪闪4521
Rank: 1
等 级:新手上路
帖 子:196
专家分:0
注 册:2007-11-30
得分:0 
这个是将大写转换为小写
是通过阿斯科码进行的转换
2008-02-06 22:25
sxn0508
Rank: 1
等 级:新手上路
帖 子:120
专家分:0
注 册:2008-1-24
得分:0 
或许写成这样会更容易理解些ch-'A'+'a'
把‘A’后第几个变成‘a’后第几个
2008-02-06 22:34
hongwu147
Rank: 1
等 级:新手上路
帖 子:47
专家分:0
注 册:2008-2-2
得分:0 
大写字母和小写字母的ASCII码差32,即 大写字母+32=小写字母,而‘a’-‘A’=32
2008-02-07 15:53
s_k_y
Rank: 1
等 级:新手上路
帖 子:113
专家分:0
注 册:2008-2-2
得分:0 
同意3#的!!!!!!
2008-02-12 02:54
有敌手
Rank: 1
等 级:新手上路
帖 子:41
专家分:0
注 册:2008-2-12
得分:0 
为何不直接写成   putchar(ch+32)  ?
我是菜鸟,问题太白不要喷我- -
2008-02-12 05:17
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
得分:0 
也可以这样写,但是没有上面的方便,不需要记住ASCII的值
2008-02-12 08:29
xianshizhe111
Rank: 1
等 级:新手上路
帖 子:1451
专家分:0
注 册:2007-12-8
得分:0 
转了个小弯,
输入大写B=66 A=65 a=97
结果:(97+66-65)=98=b
2008-02-12 12:41
一介草民
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2008-1-24
得分:0 
明白了,谢谢大家哈!
2008-02-12 15:43
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
得分:0 
int fun(int ch)
{
    if(ch >= 'A' && ch <= 'Z')
        ch = ch - 'A' + 'a';
    return ch;
}

/* 如果 ch 为 'A' 则,
        ch - 'A' == 0
        0 + 'a' == a  (即 ch - 'A' + 'a')

因为字母在ASCII表中是连续的,所以:
    ch 为 'B'时,
    ch - 'A' + 'a' == 'b'  即 ('A' + 1) - 'A' + 'a' == 1 + 'a'

—>〉Sun〈<—
2008-02-12 22:24



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-199590-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.292450 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved