#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、语句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上,就完成了大小写的转化
小写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'。