一个小错误

作者在 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;
}

默认分类 | 阅读 1118 次
文章评论,共0条
游客请输入验证码
文章分类