Online Compiler C

#include <stdio.h> int main() { char c; while((c = getchar())!='.'){ if(c>='A'&& c<='Z'){ int position=c-'A'; c='a'+position;} printf("%c",c); } return 0; }
这段代码的功能是:从输入中逐个读取字符,遇到句点(.)时停止。对于每个大写字母(A-Z),将其转换为对应的小写字母,其他字符保持不变,然后输出。

- 代码中 `c` 被声明为 `char` 类型,但 `getchar()` 返回的是 `int` 类型,用于表示字符或 `EOF`。当 `c` 是 `char` 时,无法正确检测文件结束符(EOF),且在某些系统上可能无法处理非ASCII字符。建议将 `c` 的类型改为 `int`。
- 循环条件 `(c = getchar()) != '.'` 会在遇到句点时立即停止,但此时句点本身不会被输出。如果希望输出句点,需要调整循环逻辑或输出时机。