2

getcharC プログラミング クラスで、関数とのみを使用して、新しい行に各単語を含む詩を出力する割り当てがありputcharます。私はプログラムの大部分を書きましたが、複数のスペースに対して改行を 1 つだけにする方法がわかりません。たとえば、複数のスペースがある場合、出力にギャップが生じますが、これは望ましくありません。これを修正する方法を知っている人はいますか?

int main(int argc, const char * argv[])
{
    /* Variables declared */
    int iochar;

    /* While loop */
    while ((iochar = getchar() ) != EOF) {

        /* If statement to return on alphabetic characters, not puncuation */
        if (((iochar >= 'A') && (iochar <= 'Z')) || ((iochar >= 'a') && (iochar <= 'z'))) {
            putchar(iochar);
        }

        /* If statement to produce a new line when a space is detected */
        if (iochar == ' ') {
            putchar('\n');
        }
    }

    return 0;
}
4

1 に答える 1

2

前の文字を別の変数に格納し、現在の文字がスペースであり、かつ前の文字がスペースでない場合にのみ改行を出力することができます。

ところで: 入力の数値はどうなるのですか?

于 2012-09-18T23:22:05.857 に答える