-1

たとえば、次の主な機能があるとします。

int main() 
{

  char a[1023];

  while (scanf("%s",a) != EOF) 
  {
      printf("%s ",a);

  }
}

入力したら

 a ab abc(newline)

出力する必要があります:

 a ab abc(newline)

しかし、メイン関数の出力

 a ab abc (newline) // there is a space between newline and the last string

文字列を1つずつ読みたい。何が問題で、どうすればそのスペースを削除できますか? ありがとうございました。

4

2 に答える 2

1

ステートメントprintf("%s ",a);は、出力する各文字列の後にスペースを出力します。より多くの文字列がある場合にのみ、代わりにスペースを出力する必要があります。同様に (そして簡単に)、最初の文字列でない場合は、各文字列の前にスペースを出力します。

int first = 1;
while (scanf("%s",a) != EOF) {
    if (!first) printf(" ");
    printf("%s",a);
    first = 0;
}

また、改行が出力されていると記述しているにもかかわらず、改行を出力することはありません...

于 2013-07-30T20:56:01.107 に答える