gpt4 book ai didi

C - 使用 getchar 和 putchar 交换字符

转载 作者:太空宇宙 更新时间:2023-11-04 00:05:36 25 4
gpt4 key购买 nike

这是作业。必须只使用 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 获取 getchar

最佳答案

我输入了 PAR,按了一次回车键,得到了 APR。我相信这就是您想要的。

Is there some way to kill \n for getchar?

你需要做这样的事情:

char1 = getchar();
getchar(); // To kill `\n`
char2 = getchar();
getchar(); // To kill `\n`

Source .

同样按照 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;
}

关于C - 使用 getchar 和 putchar 交换字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25998983/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com