题目:
答案一(用getchar):
#include <stdio.h>
int main()
{char str[10000];int i = 0;while ((str[i] = getchar()) != '\n'){i++;}i--; //去掉\nwhile (i >= 0){printf("%c", str[i--]);}return 0;
}
答案二(用fgets):
#include<stdio.h>
#include<string.h>
int main()
{char str[10000];fgets(str, 10000, stdin);int len = strlen(str)-1; //减1除去\0for (int i = len-1; i >= 0; i--) //再减1除去\n{printf("%c",str[i]);}return 0;
}
至于为什么要减1再减1,可以举例具体分析输入缓冲区
关于输入区具体内容如下(举例):
如上图可知,如果要逆序打印,下标必须从字符串长度减1再减1开始打印