C语言基础问题!

#include "stdio.h"
main()
{char ch;
ch=getchar();
if(ch>='a'&&ch<='z')
ch=ch-'a'+'A';
putchar(ch);
}

就是输入小写字母回车后转换成大写。
if(ch>='a'&&ch<='z')
ch=ch-'a'+'A';
这两句哪位给我解释下?

ch是用getchar()函数从键盘得到的字符。
1、语句if(ch>='a'&&ch<='z')是将得到的字符与a 和z比较,当ch在a和z 之间就符合条件。因为C语言是采用ASCII编码,a的编码是97,z的编码是122.
2、语句ch=ch-'a'+'A'中ch-'a'是指计算出是小写英文字母中的第几个字母,如果再加上'A',就是指ASCII编码中A 后第几个字母,所以整个语句就是将小写字母变为大写字母
希望对你有帮助!
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-06-25
每个字符在ASC码中都有一个对应的值
小写a为97,b为98,依次类推,z为122
大写A为65
if(ch>='a'&&ch<='z')
这句意思是比较当前 ch的ASC码是否在97到122之前,也就是是否为一个小写字母。
ch=ch-'a'+'A';
如果ch是小写,则先减去一个a的码值,得到ch是a之后的第几个字符,在加到大写A上,就完成了大小写的转化
第2个回答  2010-06-25
第一句是一个判断语句,判断ch是否是一个小写字母,如果是就执行ch=ch-'a'+'A',第二个语句是将ch这个字符的ASCII值减去'a'的ASCII值再加上'A'的ASCII值就可以将小写字母转化成大写字母了
第3个回答  2010-06-25
ch是你设置的一个变量,字母a-z是以二进制存储的,如果a<=ch<=z,ch=ch-'a'+'A'。

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网