给定一个字符串,全部由英文字母组成 ,要求把该字符串的中的大写字母改为小写,小写字母改为大写。字符长
#include<stdio.h>#include<stdlib.h>#include<string.h>intmain(){inti;chara[20];gets(a)...
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
int i;
char a[20];
gets(a);
for(i=0;i<strlen(a);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';
}
}
printf("%s",a);
return 0;
}
此程序那有问题呀 为什么 大写的不变 展开
#include <stdlib.h>
#include <string.h>
int main()
{
int i;
char a[20];
gets(a);
for(i=0;i<strlen(a);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';
}
}
printf("%s",a);
return 0;
}
此程序那有问题呀 为什么 大写的不变 展开
展开全部
for(i=0;i<strlen(a);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')
即可。
{
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')
即可。
展开全部
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';
}
不应该是顺序执行,而应该选择执行,是或的关系
{
a[i]=a[i]-'A'+'a';
}
if(a[i]>='a'&&a[i]<='z')
{
a[i]=a[i]-'a'+'A';
}
不应该是顺序执行,而应该选择执行,是或的关系
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
int i;
char a[20];
gets(a);
for(i=0;i<strlen(a);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;
}
#include <stdlib.h>
#include <string.h>
int main()
{
int i;
char a[20];
gets(a);
for(i=0;i<strlen(a);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;
}
参考资料: z
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询