用C++语言编写程序,编程新手,越简单越好。用选择结构

编写程序,要求输入一个字母,若为大写字母,将其转换成相应小写字母输出,否则,原样输出该字母。

#include<iostream>
using namespace std;

int main(){
char ch = '\0';
cin>>ch;
if('A' <= ch && ch <= 'Z')
ch += ('a' - 'A');
cout<<ch<<endl;
return 0;
}

 

追问

程序运行确实成功了。可好多不懂啊。
\0是啥?
ch+=()这个是啥?怎么运算
这个if没有else吗?
谢谢

追答

    '\0'是Ascii吗为0的字符,就像'0'为Ascii码为48的字符

    ch += 8; 等价于 ch = ch + 8;+= 是一个复合运算符

    if后的else是可选的

    没说清楚的欢迎继续追问!

追问

\0是不是可以去掉不加
为什么ch+=()就能成立啊?如果输入A符合if条件,进行下面那个运算,怎么 个算法?要输出的ch='A'+'a'-''A?

追答

    可以,我只是使用'\0'来初始化ch这个变量,因为ch刚创建时它的内容是一个随机的值。

    ch = ch + a - 'A';是把大写转换为小写。

    2.1由于Ascii码中大小写字母A->Z,a->z是连续编码的即(相邻的2个字母Ascii码差1)

    2.小写字母比对应的大写字母的ASCII值大了一个常数值即'a'-'A'或'b'-'B',是一样的道理,如果是ASCII码的话,你看ASCII码表就知道了。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-10-05
#include <cstdio>
int main(){
char c;
scanf("%c",&c);
if(c>='A'&&c<='Z')printf("%c",c-'A'+'a');else printf("%c",c);
return 0;
}
相似回答