int main()
{
int c, lastc = EOF;
while((c = getchar()) != EOF){
if(c != ' '){
putchar(c);
}
else if(lastc != ' '){
putchar(c);
}
lastc = c;
}
return 0;
}
このプログラムは以前質問した2個以上の空白を1つにするというプログラムの解答サンプルですが判らない所はlastcの初期値のことです。初期値が空白で文字列が○aaのように最初に空白があった場合
その空白は表示されません。また今回は空白が2個以上あった場合 ですが文字列が2個以上あった場合
の一般的な初期値は何にするのが妥当か?という論議がありました。
私としてはも対象の文字以外ならなんでもいいんじゃ・・という意見もだしましたが一般的ではないと
退けられました。結局答えは EOF だったのですが、whileの条件があるからそうかなと思っていましたが
それでもないようです。何故初期値に EOFが良いのか理由わかる方いますか?