getchar()
問題:複数の空白を削除した文字列を使用してテキスト入力を受け取り、出力するプログラムを作成してください。
擬似コードの書き方は次のとおりです。
While each input character is received before reaching EOF, do the following:
1) if character is non-blank, print it out
2) otherwise:
a. print out the blank
b. do nothing untill the next non-blank character
3) if a non-blank character is reached, go back to 1)
私はそのようにアルゴリズムを実装しようとしました:
#include <stdio.h>
/* replaces multiple blanks with a single blank */
main(){
char c;
while((c= getchar())!=EOF){
if (c != ' ')
putchar(c);
else {
putchar(c);
while(c == ' ')
;
}
}
}
文字列に空白が含まれていると、停止します。どのようにデバッグすればよいかわかりません。問題は 2 番目の にあると思います。while
プログラムは、新しい文字を待つのではなく、そこで無限ループに入ります。