给定一个字符串,全部由英文字母组成 ,要求把该字符串的中的大写字母改为小写,小写字母改为大写。字符长

2024-12-31 10:13:17
推荐回答(3个)
回答1:

for(i=0;i {
if(a[i]>='A'&&a[i]<='Z')
{
a[i]=a[i]-'A'+'a'; //在这里,确实是把大写变成了小写
}
if(a[i]>='a'&&a[i]<='z')
{
a[i]=a[i]-'a'+'A'; //但是,在这里,又都全部变成了大写
}
}
-----------
把: if(a[i]>='a'&&a[i]<='z')
改为:else if(a[i]>='a'&&a[i]<='z')
即可。

回答2:

if(a[i]>='A'&&a[i]<='Z')
{
a[i]=a[i]-'A'+'a';
}
if(a[i]>='a'&&a[i]<='z')
{
a[i]=a[i]-'a'+'A';
}
不应该是顺序执行,而应该选择执行,是或的关系

回答3:

include
#include
#include

int main()
{
int i;
char a[20];
gets(a);
for(i=0;i {
if(a[i]>='A'&&a[i]<='Z')
{
a[i]=a[i]-'A'+'a';
}
else
{
a[i]=a[i]-'a'-'A';
}
}
printf("%s",a);
return 0;
}