大小写互换

大小写互换
时间限制:1000 ms  |  内存限制:65535 KB
难度:0
描述
      现在给出了一个只包含大小写字母的字符串,不含空格和换行,要求把其中的大写换成小写,小写换成大写,然后输出互换后的字符串。
输入
第一行只有一个整数m(m<=10),表示测试数据组数。
接下来的m行,每行有一个字符串(长度不超过100)。
输出
输出互换后的字符串,每组输出占一行。
样例输入
2
Acm
ACCEPTED
样例输出
aCM
accepted

#include"stdio.h"
 #include"string.h"
 #define MAXN 100
 char a[MAXN];
 int main()
 {
 	int m,i;
 	scanf("%d",&m);getchar();
 	if(m<=10)
 	while(m--)
 	{
 		memset(a,0,MAXN);//fputs(a,stdout);
 		fgets(a,sizeof(a),stdin);
 		for(i=0;i<MAXN;i++)
 		{
 			if(a[i]>=65 && a[i]<=90)
 				a[i]=a[i]+32;
 			else if(a[i]>=97 && a[i]<=122) 
 				a[i]=a[i]-32;
 		}
 		for(i=0;a[i]!='\0';i++)
 			printf("%c",a[i]);
 		
 	}
 return 0;
 }

鼓捣了大半天,先是用fgets和fputs来控制输入输出字符串,但是输出结果总是不对,后来干脆改成最基本的方法,用for来控制,之后突然发现fgets的长度控制好像不对,由size(MAXN)改成了sizeof(a),然后提交,AC了!所以我估计,一定是sizeof所接收的长度太大导致错误,改成了实际情况下的a就好了

如下是使用较为生疏的fputs语句和isupper和islower函数所编写的,也AC了!

#include"stdio.h"
 #include"ctype.h"
 #include"string.h"
 #define MAXN 100
 char a[MAXN];
 int main()
 {
 	int m,i;
 	scanf("%d",&m);getchar();
 	if(m<=10)
 	while(m--)
 	{
 		memset(a,0,MAXN);//fputs(a,stdout);
 		fgets(a,sizeof(a),stdin);
 		for(i=0;i<MAXN;i++)
 		{
 			if(isupper(a[i]))
 				a[i]=a[i]+32;
 			else if(islower(a[i])) 
 				a[i]=a[i]-32;
 		}
 		fputs(a,stdout);
 	}
 return 0;
 }

总结就是,在使用fputs语句时,sizeof()里边必须是数组名!不能是数组最大长度


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值