Онлайн компилятор C

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

- 注意循环条件 `while (c != '.')`:当读取到句点时,循环会先执行一次循环体(包括转换和输出),然后才判断条件退出。这意味着句点本身也会被输出一次,这可能是你期望的行为,也可能不是,取决于题目要求。

- 另外,`scanf("%c", &c)` 会读取包括空格和换行符在内的所有字符。如果输入中有换行符,它们也会被处理并输出,这可能导致输出中出现多余的换行。考虑是否需要忽略空白字符。