1.从缓冲区读走一个字符,相当于清除缓冲区
2.前面的scanf()在读取输入时会在缓冲区中留下一个字符'\n'(输入完s[i]的值后按回车键所致),所以如果不在此加一个
getchar()把这个回车符取走的话,gets()就不会等待从键盘键入字符,而是会直接取走这个“无用的”回车符,从而导致读取有误
在有的时候输入字符的时候需要用到getchar()来取走回车\n。
#include <bits/stdc++.h>
using namespace std;
int main() {
char ch = 0;
//循环读入字符串,用getchar消去换行符
while(scanf("%c", &ch) != EOF) {
getchar();
//判断是否大写字母,如果是调用转换小写的函数tolower,反之亦然
if(ch >= 'A' && ch <= 'Z')
printf("%c\n", tolower(ch));
else
printf("%c\n", toupper(ch));
}
return 0;
}