以下のコードがその下のコードとまったく同じように機能しないのはなぜだろうと思っていました。コードが行うべきことは、複数の連続するスペースを削除し、1 つのスペースのみを表示することです。したがって、「動作する」は「動作する」になります。コードの最初の部分は、「動作する」ように維持するだけです。
動作しません
#include <stdio.h>
main(){
int c;
int lastspace;
lastspace = 0;
while((c = getchar()) != EOF){
if(c != ' ')
putchar(c);
lastspace = 0;
if(c == ' '){
if(lastspace == 0){
lastspace = 1;
putchar(c);
}
}
}
}
作品
#include <stdio.h>
main(){
int c
int lastspace;
lastspace = 0;
while((c = getchar()) != EOF){
if(c != ' ')
putchar(c);
if(c == ' '){
if(lastspace != c){
lastspace = c;
putchar(c);
}
}
}
}