由于都是只有一个空格隔开的,问题就很好办了,只需一个指针变量就能搞定,指针顺序遍历,把所有空格以及结尾的换成'\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; }