问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
int main(){
int ch;
while((ch = getchar())!='\n'){
if(ch >= 'A' && ch <= 'Z'){
getchar();
putchar(ch);
}
}
return 0;
}
为什么这个循环里,putchar()只能输出一半字符而且是有序的,是我哪里写错了吗
int main(){
int ch;
while((ch = getchar())!='\n'){
if(ch >= 'A' && ch <= 'Z'){
getchar();
putchar(ch);
}
}
return 0;
}
为什么这个循环里,putchar()只能输出一半字符而且是有序的,是我哪里写错了吗
你 while()中用 getchar()读取了一个字符, if()的{}中又用 getchar(); 读取了一个字符,
等于一次循环读取了两个字符,这样多读取的一个字符就被跳过了
把if(){}中的 getchar();去掉就可以了:
#include<stdio.h>
int main(){
int ch;
while((ch = getchar())!='\n'){
if(ch >= 'A' && ch <= 'Z'){
putchar(ch);
}
}
return 0;
}
如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!