作者在 2015-12-30 22:41:01 发布以下内容
这是一个大小写字母转换的程序,但是却存在一个错误,即可以大写转小写,不能小写转大写。
代码如下:
#include <iostream>
using namespace std;
int main()
{
char a[100];
cin>>a;
cout<<endl;
for(int i=0;a[i]!=0;i++)
{
if(a[i]>='a'&&a[i]<='z') //如果是小写,转换为大写
a[i]-=32;
if(a[i]>='A'&&a[i]<='Z') //如果是大写,转换为小写
a[i]+=32;
}
cout<<a;
return 0;
}
仔细查看,错误的原因是,当小写字母转换为大写字母后,第二个if语句进行判断后,又把刚转换为大写的字母转换为小写。所以出现大写能转换为小写,小写不能转换为大写的错误。
正确的代码应该是:
#include <iostream>
using namespace std;
int main()
{
char a[100];
cin>>a;
cout<<endl;
for(int i=0;a[i]!=0;i++)
{
if(a[i]>='a'&&a[i]<='z')
a[i]-=32;
else if(a[i]>='A'&&a[i]<='Z')
a[i]+=32;
}
cout<<a;
return 0;
}