在线编译器 C

#include <stdio.h> #include <string.h> int main() { char s[1001]; fgets(s, sizeof(s), stdin); int len = strlen(s); if (len > 0 && s[len - 1] == '\n') { s[len - 1] = '\0'; len--; } for (int i = len - 1; i >= 0; i--) { putchar(s[i]); } return 0; }
这段代码的功能是:从标准输入读取一行字符串(最多1000个字符),然后将其反转输出。

代码先使用fgets读取一行,然后去掉末尾的换行符,最后从字符串末尾向前遍历并逐个字符输出。

- 注意fgets会读取换行符并存入字符串,代码中处理了这种情况,但需要考虑如果输入字符串长度正好等于1000时,fgets可能不会读到换行符,此时len-1的索引可能不是换行符。
- 另外,如果输入为空行(只按回车),代码会输出空字符串,这是合理的,但可以思考一下边界情况。