Online Compiler C

#include <stdio.h> int main() { char c,save=0; while((c=getchar())!='.'){ if( c==' '&& save==' '){ }else { putchar(c); } save=c; } return 0; }
这段代码的功能是从输入中读取字符,直到遇到句号为止,并在输出时删除连续重复的空格(即多个连续空格只保留第一个)。

代码中有一个潜在的问题:变量 `c` 被声明为 `char` 类型,但 `getchar()` 返回的是 `int` 类型,这可能导致无法正确检测文件结束符(EOF)。

- 将 `c` 的类型改为 `int`,以便能够正确接收 `getchar()` 返回的所有值,包括 EOF。
- 注意 `save` 的初始值设为 `0`,这可能导致第一个字符如果是空格且前面没有字符时,逻辑判断可能不符合预期。考虑 `save` 的初始值是否应该与空格比较。