/************************************************************************/
/* 将一个英文语句以单词为单位逆序排放。例如“I am a boy”,逆序排放后为“boy a am I”
所有单词之间用一个空格隔开,语句中除了英文字母外,不再包含其他字符
接口说明
/**
* 反转句子
*
* @param sentence 原句子
* @return 反转后的句子
*/
/*
public String reverse(String sentence);
输入:将一个英文语句以单词为单位逆序排放。
输出:逆序的句子
例 输入 I am a boy
输出 boy a am I * /
/* 将一个英文语句以单词为单位逆序排放。例如“I am a boy”,逆序排放后为“boy a am I”
所有单词之间用一个空格隔开,语句中除了英文字母外,不再包含其他字符
接口说明
/**
* 反转句子
*
* @param sentence 原句子
* @return 反转后的句子
*/
/*
public String reverse(String sentence);
输入:将一个英文语句以单词为单位逆序排放。
输出:逆序的句子
例 输入 I am a boy
输出 boy a am I * /
/************************************************************************/
#include <iostream>
#include <string>
#include <vector>
using namespace std;
int main(){
string input;
string output;
vector<string> str_list;
string::size_type comma = 0;
cout << "请输入一个英文语句,所有单词之间用一个空格隔开:" << endl;
getline(cin, input);
while (true)
{
string tmp = "";
comma = input.find(" ");
if (-1==comma) //没有找到空格
{
tmp = input.substr(0, input.length());
str_list.push_back(tmp);
break;
}
tmp = input.substr(0, comma);//得到空格前的字符串
input.erase(0, comma + 1); //擦除空格前的字符串
str_list.push_back(tmp); //把得到的字符串压入向量
}
vector<string>::const_reverse_iterator riter;//从后向前的const迭代器
for (riter = str_list.rbegin(); riter != str_list.rend()-1;riter++)
{
output += (*riter);
output += " "; //加上空格
}
output += (*riter);//最后一个不加空格
cout << "逆序后的句子为:" << endl;
cout << output << endl;
return 0;
}