在线编译器 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]); } putchar('\n'); return 0; }
这段代码的功能是:从标准输入读取一行字符串(最多1000个字符),然后将其反转输出。它使用fgets读取,去掉末尾的换行符,然后从最后一个字符开始向前遍历并逐个输出。

- 代码中有一个潜在的逻辑问题:在循环结束后才输出换行符,但循环内部没有处理字符串中可能存在的空格或特殊字符,不过对于反转本身来说这是正确的。
- 注意:如果输入字符串为空(即只输入了换行符),len会变成0,循环不会执行,但最后仍然会输出一个换行符,这符合预期。