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

#include <stdio.h> int main() { char str[1001]; int i=0; int c; while ((c=getchar())!='\n'){ str[i]=c; i++; } str[i]='\0'; int k=0; while(str[k]!='\0'){ k++; } k--; while(k>=0){ putchar(str[k]); k--; } printf("\n"); return 0; }
这段代码的功能是:从键盘读取一行字符串(以换行符结束),然后将其逆序输出。

代码首先用 getchar() 逐个读取字符存入数组 str,直到遇到换行符。然后通过一个循环找到字符串的长度(即字符个数),最后从最后一个字符开始向前逐个输出,实现逆序。

- 第一个提示:代码中计算字符串长度的方法比较繁琐,实际上可以直接使用 i 变量,因为 i 在读取字符时已经记录了字符个数。思考如何利用 i 来简化代码。
- 第二个提示:注意代码在读取字符时,如果用户直接按回车(即输入空行),那么 str[0] 会被赋值为 '\0',后续的逆序输出逻辑需要确保能正确处理这种情况。