1009 说反话 (20 分)

#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;
}
原文地址:https://www.cnblogs.com/Hk456/p/10720147.html