2

これは宿題です。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を2回押す必要があります...。この動作をなくすにはどうすればよいですか? getchar で \n を強制終了する方法はありますか

4

1 に答える 1

0

PAR と入力して Enter を 1 回押すと、APR が表示されました。私はこれがあなたが望むものだと信じています。

getchar で \n を殺す方法はありますか?

次のようなことをする必要があります:

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;
}
于 2014-09-23T15:40:41.547 に答える