任务描述
相关知识
编程要求
任务描述
从键盘输入依次输入一串英文字母,大小写不限,将其中的大写字母转换成相应的小写字母,小写字母转换成相应的大小字母,当输入字符不是英文字母时,停止程序执行。
输入:gfDesBT4
输出:GFdESbt
输入:Kitty8LiLy
输出:kITTY
相关知识
本关任务采用重复执行输入语句的方式来输入字符串,每输入 一个字符即对其进行判断,一个字符的转换处理完成后,即输入下一个字符。当读入的字符是非字母时,则处理结束。
是否是字母,对于判断的结果可以作为一个标志f,例如:如果是字母,则设置:f = 1,否则设置 f = 0。
条件循环控制框架
while 语句
scanf("%c",&s);
…//判断是否是字母,f=1 或者 f=0
while (f)
{
…
scanf("%c",&s);
…//判断是否是字母,f=1 或者 f=0
}
*注意**其中两个scanf()语句的位置和作用,字符的输入也可以使用getcahr(),如:s = getchar()。
**编程要求
为了完成此任务,你编写的程序要能根据不同的输入字符输出不同的转换后的字符。
效果如下:
####测试说明
程序会对你编写的代码进行测试:
输入测试数据:Kitty8LiLy,需要你的程序输出:kITTY
字符在一行内进行输入,依次输出结果,末尾无换行。
开始你的任务吧,祝你成功!**
代码如下
小白入门,欢迎指出不足和改进方案,如果能讨论不同的解决方案就更好了☺️
#include <stdio.h>
#include <math.h>
int main()
{
int f=1;
while (f)//当()内表达式不为零是执行后面循环
{
char b;
scanf("%c",&b);
if(b>='A'&&b<='Z')
{
b=b+32;
printf("%c",b);
}
else if (b>='a'&&b<='z')
{
b=b-32;
printf("%c",b);
}
else if (b>='0'&&b<='9')
{
f=0;
}
}
return 0;
}