版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
题目要求:
编写一个程序,可以一直接收键盘字符,
如果是小写字符就输出对应的大写字符,
如果接收的是大写字符,就输出对应的小写字符,
如果是数字不输出。
思路:
在本程序中,用**getchar()和putchar()**输入和输出字符; 将字符进行大小写转换主要依据的是ASCII码表,A到Z在ASCII码表中用65到90表示,a到z在ASCII码表中用97到122表示,相对应的大小写的ASCII码值相差32,在进行大小写转换时,只要对应的加上或者减去32即可完成转换,当遇到数字直接输出空格即可。
注意:
在while的循环条件中要先将getchar()输入的字符赋给ch,再进行循环条件判断
当输入Ctrl z 的时候跳出while循环
判断大小写字母时,要注意判断条件之间要用 && 连接
ASCII码表中各个字母对应的数值
源代码:
#include<stdio.h>
#include<Windows.h>
void main()
{
char ch;
printf("请输入(若要退出循环则输入Ctrl z):\n");
while ((ch = getchar()) != EOF){
if (ch >= 'a' && ch <= 'z'){
ch -= 32;
putchar(ch);
}
else if (ch >= 'A' && ch <= 'Z'){
ch += 32;
putchar(ch);
}
else{
printf(" ");
}
}
system("pause");
}
运行结果: