Online Compiler C

#include <stdio.h> #include <string.h> int main() { char s[1005]; fgets(s, 1005, stdin); int len = strlen(s); for (int i = len - 1; i >= 0; i--) { printf("%s", s[i]); } return 0; }
这段代码试图将输入的字符串反转输出,但存在一个关键问题。

代码从字符串末尾开始遍历,但 `printf("%s", s[i])` 是错误的,因为 `s[i]` 是一个字符,而 `%s` 需要字符串的地址。这会导致程序行为异常。

- 使用 `printf("%c", s[i])` 来逐个输出字符,而不是 `%s`。
- 注意 `fgets` 会读取换行符,反转后换行符会出现在开头,你可能需要处理它。