課題
二つ以上の空白を一つの空白に置き換えながら、入力を出力に複写するプログラムを書け。
ソースコード
#include <stdio.h> int main(void) { int c1, c2, cnt; cnt = 0; while ((c1 = getchar()) != EOF) { if ((cnt >= 2) && // 2文字目以降で (c2 == c1) && // 前の文字と同じで (c1 == ' ')) { // スペースであれば continue; // 次の文字へ } printf("%c", c1); // 出力 c2 = c1; // 今回の文字を記憶 cnt++; // 文字数カウンタ }
実行内容
「fdsa f」と入力後、Enterキー入力。
実行結果
fdsa f fdsa f poi io 87 56 poi io 87 56
所感
「二つ以上の空白」って、「連続した二つ以上の空白」って意味でしょうね。