#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 != '.' 时出现不可预测的行为。应该先读取一个字符再进入循环,或者使用其他循环结构。
- 当输入包含换行符或其他空白字符时,这些字符也会被读取并输出,但不会触发大小写转换。如果希望只处理字母,可以考虑在转换前检查字符是否为字母。