#include <iostream> #include <string> #include <stack> using namespace std; int main(){ stack<string>s; string str, stu = ""; //制造空字符串 getline(cin, str); for (int i = 0; i < str.size(); i++) { // 通过间接法将一个字符串转入另一个字符串,再将其转进栈。这里用到了字符串的小技巧,很精髓 if (str[i] != ' '){ stu += str[i]; } else if (str[i] == ' ' && stu != ""){ s.push(stu); stu = ""; } } if (stu != "")。 // 注意最后一个单词 s.push(stu); while (!s.empty()){。// 最后不得有多余的空格,用到了一个小技巧解决 cout << s.top(); s.pop(); if (s.size() != 0) cout << ' '; } cout << endl; return 0; }