Online Compiler C

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

- 变量 c 在第一次进入 while 循环时还没有被初始化,它的值是未知的,这可能导致程序在第一次判断 c != '.' 时出现不可预测的行为。应该先读取一个字符再进入循环,或者使用其他循环结构。
- 当输入包含换行符或其他空白字符时,这些字符也会被读取并输出,但不会触发大小写转换。如果希望只处理字母,可以考虑在转换前检查字符是否为字母。