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

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

代码首先用fgets读取字符串,然后手动计算字符串长度(包括换行符),接着去掉末尾的换行符,最后从最后一个字符开始向前逐个输出,实现反转。

- 注意:在去掉换行符后,字符串的实际长度变成了l-1,但循环中仍然使用原来的l作为起始索引,这会导致输出时多输出一个空字符('\0'),因为s[l-1]被改成了'\0',而循环从i=l-1开始,此时s[l-1]已经是'\0',所以第一个输出的就是空字符,然后才输出真正的字符。建议调整循环的起始位置,使其只输出有效的字符。