C++大小写转换 这个编程是将大写的字母转换成小写的,怎样改动一下将它变为大小写可以互相转换的程序呢?

#include <iostream>
using namespace std;
int main()
{
char ch;
cin>>ch;
ch=(ch>='A'&&ch<='Z')?(ch+32):ch;
cout<<ch<<endl;
return 0;
}
我将它改写了一下,就直接加了一行:ch=(ch>='a'&&ch<='z')?(ch-32):ch;那为什么就不行了呢?我觉得可以的。可是我运行之后发现小写乐意转换为大写,大写却还是大写!想了好久还是不知道这是为什么!
#include <iostream>
using namespace std;
int main()
{
char ch;
cin>>ch;
ch=(ch>='A'&&ch<='Z')?(ch+32):ch;
ch=(ch>='a'&&ch<='z')?(ch-32):ch;
cout<<ch<<endl;
return 0;
}

ch=(ch>='A'&&ch<='Z')?(ch+32):ch;//程序运行到这时大写已经转为了小写

ch=(ch>='a'&&ch<='z')?(ch-32):ch;//但是运行到这时小写有转成了大写

所以小写可以转成大写
而大写还是大写

其实
你按着一楼的写就行了
何必那么麻烦啊

参考资料:c++

温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-03-29
#include <iostream>
using namespace std;

void BtoS()
{
char ch;
cin>>ch;
ch=(ch>='A'&&ch<='Z')?(ch+32):ch;
cout<<ch<<endl;
}

void StoB()
{
char ch;
cin>>ch;
ch=(ch>='a'&&ch<='z')?(ch-32):ch;
cout<<ch<<endl;
}

int main()
{

bool flag;
flag=true;
while(flag)
{
char num;
cout<<"请确定转换:1、大转小;2、小转大:";
cin >> num;
switch(num)
{
case '1':
BtoS();
flag=false;
break;
case '2':
StoB();
flag=false;
break;
default:
cout<<"输入错误!";
}

char b;
cout << "continue(y or n): ";
cin>>b;
if(b=='y')
flag=true;
}
cout<<endl;
return 0;
}
很简单的,所以很多不完善,自己动手,丰衣足食……
第2个回答  推荐于2018-03-21
#include <iostream>
using namespace std;
int main()
{
char ch;
cin>>ch;
// ch=(ch>='A'&&ch<='Z')?(ch+32):ch;
if (ch>='A'&&ch<='Z')
{
ch = ch + 32;
}
else if (ch>='a'&&ch<='z')
{
ch = ch - 32;
}
cout<<ch<<endl;
return 0;
}本回答被提问者和网友采纳
相似回答