| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 10728 人关注过本帖
标题:如何实现从小写字母变成大写字母?
只看楼主 加入收藏
鱿鱼
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2007-11-10
收藏
 问题点数:0 回复次数:9 
如何实现从小写字母变成大写字母?

main()
{
char c1,c2;
printf("Input a letter\n");
scanf("%c",&c1);
c2=('a'<=c1&&c1<='z')?(c1-'a'+'A'):c1;
printf("%c",c2);
getch();
return 0;

}

(c1-'a'+'A')怎么解释这句?为什么这个表达式实现了小写字母到大写字母的转换?不太懂

搜索更多相关主题的帖子: 字母 小写 printf Input 
2007-11-11 21:39
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 

'a'-'A'=32

小写和大写字母的差值是32.
所以你可以这样理解
c1-('a'-'A')==c1-32;


倚天照海花无数,流水高山心自知。
2007-11-11 21:59
鱿鱼
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2007-11-10
收藏
得分:0 
谢谢LS,就是说小写和大写字母的差是一个定值就是拉.
2007-11-11 22:05
rayxiang
Rank: 1
等 级:新手上路
帖 子:82
专家分:0
注 册:2007-10-22
收藏
得分:0 
   ASCII码的字母大小写相差32.LZ应该学过的啊..

...........没 有 音 乐 就 没 法 活............ ...........不 会C 语 言 我 可 以 问...........
2007-11-11 22:27
孤魂居士
Rank: 2
来 自:老A(中国地大)
等 级:论坛游民
威 望:4
帖 子:1142
专家分:18
注 册:2007-5-21
收藏
得分:0 
以下是引用nuciewth在2007-11-11 21:59:48的发言:

'a'-'A'=32

小写和大写字母的差值是32.
所以你可以这样理解
c1-('a'-'A')==c1-32;

ASCII 好搞


准备用3年做个高级软件工程师 10年也做不成。准备用10年做成高级软件工程师 3年就成了QQ 群 45771086
欢迎版主...欢迎JAVA爱好者...
一起从深夜 到凌晨...
2007-11-11 23:09
vfdff
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:2172
专家分:425
注 册:2005-7-15
收藏
得分:0 
把输入的字符 a -32 就可以了

~~~~~~~~~~~~~~~好好学习~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2007-11-12 00:23
eakcon
Rank: 1
等 级:新手上路
帖 子:754
专家分:0
注 册:2007-11-7
收藏
得分:0 
完全錯誤
2007-11-13 11:57
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:0 

#include <ctype.h>

toupper() 接受一个 char 参数,返回一个 char 值。
如果参数是小写字母,则返回相应的大小字母,否则返回原值。


//----------------------------------------------//
// 自己写函数 //
//------------//

char toup_a(char c)
{
if(c < 'a' || c > 'z')
return c;
return ('A' + c - 'a');
}


char toup_b(char c)
{
if(c < 'a' || c > 'z')
return c;
return (c - 32);
}


[此贴子已经被作者于2007-11-15 10:12:41编辑过]


—>〉Sun〈<—
2007-11-14 01:09
封闭
Rank: 9Rank: 9Rank: 9
来 自:广东省汕头市
等 级:蜘蛛侠
威 望:1
帖 子:501
专家分:1084
注 册:2007-9-14
收藏
得分:0 
不管你怎么定义.它们相差值就是32;
如A=65; a=97;
B=66; b=98;
2007-11-14 22:22
alicefioan37
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2007-9-29
收藏
得分:0 
了解了
2007-11-15 02:03
快速回复:如何实现从小写字母变成大写字母?
数据加载中...
 
   



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

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