在线编译器 C

#include <stdio.h> int main() { char c; do { c = getchar(); if (c >= 'A' && c <= 'Z') { c = c + 32; } else if (c >= 'a' && c <= 'z') { c = c - 32; } putchar(c); } while (c != '.'); return 0; }
这段代码的功能是:从输入中逐个读取字符,如果是大写字母则转换为小写,如果是小写字母则转换为大写,其他字符保持不变,直到遇到句点(.)为止。

- 注意 `getchar()` 返回的是 `int` 类型,直接赋值给 `char` 类型可能会丢失对 EOF(文件结束符)的判断能力。当输入流结束时,`getchar()` 返回 EOF,但 `char` 可能无法正确存储这个值,导致循环无法正常终止。
- 循环条件 `c != '.'` 在遇到句点时停止,但如果在句点之前遇到 EOF,程序可能陷入死循环或产生意外行为。