反转句子

题目:
给你一个句子(只包含字母和空格),将句子中的单词位置反转,单词用空格分割,单词之间只有一个空格,前后没有空格。比如:(1)“hello xiao mi” - >“ mi xiao hello“

/*用栈是最简单的,栈的规则是后进先出,则最后一个输入的字符最先输出,
当然也可以用容器来做,把输入的单词后插入容器vector中,然后输出时是从后往前逐个取出单词*/

#include<iostream>
#include<string>
#include<vector>
using namespace std;
int main()
{
    string s;
    vector<string> vec;
    while(cin>>s)
        vec.push_back(s);
    for(int i=vec.size()-1;i>0;i--)
        cout<<vec[i]<<' ';
    cout<<vec[0];
    return 0;
}
#include<iostream>
#include<stack>
#include<string>
using namespace std;
int main() {
    string str;
    stack<string> sstack;
    while (cin >> str) {
        sstack.push(str);
    }
    while (sstack.size()!= 1) {
        cout << sstack.top() << " ";//每个输出的元素后面都会带一个空格
        sstack.pop();
    }
    cout << sstack.top() << endl;//最后一个要在循环外输出的原因是,最后一个数据输出时不可以有空格,要带换行符,如果有空格会显示格式错误(注意题目中的前后没有空格)
    return 0;
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容