本题思路很明确,由于每一个单词内部的字母不需要被逆序,因此很简单。首先以空格为间隔符将各个单词存入一个容器中。然后用反向迭代器对这个容器进行遍历即可。

#include <iostream>
#include <vector>
#include <string>
using namespace std;

int main() {
    string s;
    getline(cin, s, '\n');
    string temp;
    vector<string> res;
    for (int i = 0; i < s.size(); i++) {
        if (s[i] != ' '){
            temp = temp + s[i];
        }
        if(s[i] == ' ' || i == s.size() - 1) {
            res.push_back(temp);
            temp.clear();
        }
    }
    
    for (vector<string>::reverse_iterator iter = res.rbegin(); iter != res.rend(); iter++) {
        cout << *iter << " ";
    }
    
    return 0;
}