Coder

舒心、快乐,比什么都重要

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;
}

 

posted @ 2019-04-16 21:26  H123K  阅读(123)  评论(0编辑  收藏  举报