这是作业。必须只使用getchar和putchar
int main(void) {
int pch; //first
int ch; //second
while(1){
pch=getchar();
ch=getchar();
if(((pch>='A' && pch<='Z')) && ((ch>='A' && ch<='Z'))){
putchar(ch);
putchar(pch);
}
if((pch>='A' && pch<='Z') && ch=='\n') putchar(pch);
if(pch=='\n' || ch=='\n') break;
}
return EXIT_SUCCESS;
}
我需要使用getchar和putchar交换字符。举个例子 巴黎 APIRS
它有效,但是当我连字母数为4,6,8时,我需要按两次ENTER。我该如何消除这种行为?有没有办法杀死\ n for getchar
答案 0 :(得分:0)
我键入PAR,点击一次进入并获得APR。我相信这就是你想要的。
有没有办法杀死\ n for getchar?
你需要做这样的事情:
char1 = getchar();
getchar(); // To kill `\n`
char2 = getchar();
getchar(); // To kill `\n`
同样由mch建议,您可以这样做:
在if(pch == '\n') break;
之后 pch=getchar();
所以你应该改变你的程序:
#include <stdio.h>
int main(void) {
int pch; //first
int ch; //second
while (1) {
pch = getchar();
if (pch == '\n') // when you hit enter once, break the loop
break;
ch = getchar();
if (((pch >= 'A' && pch <= 'Z')) && ((ch >= 'A' && ch <= 'Z'))) {
putchar(ch);
putchar(pch);
}
if ((pch >= 'A' && pch <= 'Z') && ch == '\n')
putchar(pch);
if (pch == '\n' || ch == '\n')
break;
}
return 0;
}