由于都是只有一个空格隔开的,问题就很好办了,只需一个指针变量就能搞定,指针顺序遍历,把所有空格以及结尾的换成'\0',然后再往回走的时候,走到对应的点直接以 %s 的形式传入这个指针即可输出对应单词。

#include <stdio.h>

char sentence[1000];

int main()
{
    char* p = sentence;
    fgets(sentence, sizeof(sentence), stdin);

    while (*p != '\n') {
        if (*p == ' ') *p = '\0';
        ++p;
    }

    *p-- = '\0';

    while (p != sentence) {
        if (*p == '\0') printf("%s ", p + 1);
        --p;
    }

    printf("%s ", p);
    return 0;
}