题目描述:
将一个英文语句以单词为单位逆序排放。例如“I am a boy”,逆序排放后为“boy a am I”
所有单词之间用一个空格隔开,语句中除了英文字母外,不再包含其他字符
输入描述:
输入一个英文语句,每个单词用空格隔开。保证输入只包含空格和字母。
输出描述:
得到逆序的句子
示例:
输入:I am a boy
输出:boy a am I
解题思路:
输入字符串后,每有一个空格,就将空格前的字符串扔到vector里,最后的单词因为后面没有空格,所以循环结束后还要再扔一次临时字符串。
测试代码:
#include <iostream> #include <string> #include <vector> using namespace std; int main() { string str; getline(cin,str); vector<string> words; int size=str.size(); string temp; for(int i=0;i<size;++i) { if(str[i]!=' ') { temp+=str[i]; } else{ words.push_back(temp); temp.clear(); } } words.push_back(temp); for(int i=words.size()-1;i>=0;--i) { cout<<words[i]<<" "; } return 0; }