プログラミング言語C

結構前から積読になってたのをなんとなく読み始めたので、気になるところをメモしておく。たぶん、少しづつ追記すると思う。

練習1-9
2つ以上の空白を一つの空白に置き換えながら、入力を出力に複写する
  • うまい方法が思いつかなかったので、ググった。
  • 一つ前の文字と現在の文字を比べている
#include <stdio.h>

int main(void)
{
    int ch, last_char_was_space = 0;
    while ((ch = getchar()) != EOF) {
        if (! last_char_was_space || ch != ' ')
            putchar(ch);
        last_char_was_space = (ch == ' ');
    }
    return 0;
}