题目描述

将一个英文语句以单词为单位逆序排放。例如“I am a boy”,逆序排放后为“boy a am I” 所有单词之间用一个空格隔开,语句中除了英文字母外,不再包含其他字符。

输入描述

将一个英文语句以单词为单位逆序排放。

输出描述

得到逆序的句子

示例

输入:I am a boy
输出:boy a am I

思路

利用cin读取字符串以空格来确定字符串结束位置,结合容器vector来存储每一个单词,然后逆序打印。

#include <iostream>
#include <vector>
#include <string>
using namespace std;
int main(){
    string input;
    vector<string> arr;
    while(cin>>input){
        arr.push_back(input);
    }
    for(int i=arr.size()-1;i>=0;i--){
        cout<<arr[i]<<' ';
    }
    return 0;
}

利用栈stack先入后出的原则逆序打印。

#include <iostream>
#include <stack>
using namespace std;
int main(){
    string input;
    stack<string> stk;
    while(cin>>input){
        stk.push(input);
    }
    while(!stk.empty()){
        cout<<stk.top();
        stk.pop();
        if(!stk.empty()){
            cout<<' ';
        }
    }
    return 0;
}
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐