[英]C - Swap chars using getchar and putchar
这是为了功课。 必须仅使用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交换字符。 例如PARIS APIRS
它有效,但是当我偶数个字母4,6,8 ...时,我需要按两次ENTER键。 如何消除这种行为? 有什么方法可以杀死\\ n以获得getchar
我输入了PAR,按下一次进入并获得了APR。 我相信这就是您想要的。
有什么方法可以杀死\\ n以获得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;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.