C语言中的大小写字母转换问题?

题目内容:从键盘输入一字符串,以#为结束标记,将其中的大写字母转化为小写字母,小写字母转化为大写字母,其他不变,并输出转化后的字符串。
输入样例: a23AGs,4#
输出样例:A23agS,4
时间限制:500ms
下面是我做的:
#include <stdio.h>
#include <stdlib.h>
int main()
{ char n;
scanf("%c",&n);
while(n!='#');
{if(n>='a'&&n<='z')
n=n-32;
else
if(n>='A'&&n<='z')
n=n+32;
else
n=n;
printf("%c",n);
}
return 0;
}
结果系统说我超时了,我想问一下有没有更简便一点的方法。

while(n!='#'); 这里这个分号,导致如果第一个字符不是#,你这就死循环了
而且程序只读取了一个字符,scanf不在循环体里
并且字符串如果有空格,scanf也起不了作用追问

那要怎样写才是正确的呢

追答

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-03-29
字符串要用%s,才能输入完整字符串,不然只有一个开头字母,或者你用gets()也可以。本回答被网友采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网