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

#include <stdio.h> #include <string.h> int main() { char s[1005]; fgets(s, 1005, 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--) { printf("%c", s[i]); } return 0; }
这段代码的功能是:从标准输入读取一行字符串(最多1004个字符),然后将其反转输出。

代码首先用fgets读取字符串,然后检查并移除末尾可能存在的换行符,最后从字符串末尾向前遍历并逐个打印字符,实现反转效果。

- 注意fgets会读取换行符并存入字符串,代码中处理了这种情况,但需要考虑如果输入字符串长度正好等于缓冲区大小(1004个字符)时,换行符可能不会被读取,此时len的计算和换行符处理逻辑需要留意。
- 反转输出时,直接逐个字符打印是可行的,但也可以考虑使用更简洁的方式,比如利用数组下标直接操作。