Online Compiler C

#include <stdio.h> int main(void) { char c; while((c=getchar())!=EOF) {if(c>='A&&c<='Z){ c+=32; }else if(c>='a'&&c<='z') {c-=32;} putchar(c); if (c==='.'){ break; } } return 0; }
这段代码试图实现一个功能:读取输入字符,如果是大写字母则转为小写,如果是小写字母则转为大写,遇到句号则停止。但代码中存在几个语法错误。

- 第6行条件判断中,字符串边界写错了:`'A&&c<='Z'` 缺少了单引号闭合,应该是 `'A'` 和 `'Z'`。
- 第10行 `c==='.'` 使用了三个等号,C语言中比较相等用两个等号 `==`,三个等号是无效的语法。
- 变量 `c` 声明为 `char` 类型,但 `getchar()` 返回 `int` 类型,用 `char` 可能无法正确检测 `EOF`,建议将 `c` 改为 `int` 类型。