BC28 大小写转换
废话不多说上题:
getchar和键盘之间会有个缓冲区,这个缓冲区的内容getchar就会当作字符读取
,当我们输入A后回车才能让光标不再闪烁,多组输入过程中要注意“回车”也是字母,所以要“吸收”(getchar())掉该字母
我们改进下代码:
#include<stdio.h>
int main()
{
char ch = 0;
while (ch=getchar())
{
putchar(ch+32);
getchar();
}
return 0;
}
我们下面再放入个getchar让它把回车吸取掉。
但是当我们把这个代码放入牛客网的oj里面时候发现还是错误的。
我们发现这个程序是没有办法结束的。
我们发现getchar的返回值是这个字符,但是如果读取错误或者读取结束时候会返回EOF。我们再改进代码:
#include<stdio.h>
int main()
{
char ch = 0;
while ((ch=getchar())!=EOF)
{
putchar(ch+32);
printf("\n");
getchar();//读取\n
}
return 0;
}
我们还可以优化:
#include<stdio.h>
int main()
{
char ch = 0;
while ((ch=getchar())!=EOF)
{
printf("%c\n",ch+32);
getchar();//读取\n;
}
return 0;
}