首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用getchar和putchar交换字符

使用getchar和putchar交换字符
EN

Stack Overflow用户
提问于 2014-09-23 15:26:41
回答 1查看 202关注 0票数 2

这是做作业用的。必须只使用getchar和putchar。

代码语言:javascript
复制
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.。我该如何消除这种行为?有什么方法可以杀死\n为getchar

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-23 15:40:41

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

有什么方法可以杀死\n吗?

你需要这样做:

代码语言:javascript
复制
char1 = getchar();
getchar(); // To kill `\n`
char2 = getchar();
getchar(); // To kill `\n`

Source

同样,按照mch的建议,您可以:

if(pch == '\n') break;pch=getchar();

因此,您应该将程序更改为:

代码语言:javascript
复制
#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;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25998983

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档