#include <stdio.h>
int main()
{
char cha = 0;
while (scanf("%c",&cha) != EOF)
{
if (cha>='a' && cha <='z')
{
cha -= ' ';//或者-=32
}
else if (cha >= 'A' && cha <= 'Z')
{
cha += ' ';//或者+=32
}
printf("%c\n", cha);
getchar();
}
return 0;
}
1.scanf的返回值是scanf读取的个数。若scanf未读取任何东西,返回值为EOF,即-1。即只要读取到了值,while循环就不会停。
2.小写的ASCII码值比大写的ASCII值大32,32也就是空格字符的ASCII值,大写转小写只要加一个空格字符或者加32就可以,小写转大写同理。
3.getchar()是用来读取\n的如果没有getchar(),\n会被scanf读取,会输出\n的改变值。
4.不能两个if判断,因为第一个if判断完,如果cha是小写,cha会变成大写,又会进入if语句,又会变成小写,就不能完成小写变成大写了。(本人犯过的低级错误)