句子逆序

来源:互联网 发布:九回时间旅行知乎 编辑:程序博客网 时间:2024/05/17 09:17
/************************************************************************/
/* 将一个英文语句以单词为单位逆序排放。例如“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;}


0 0
原创粉丝点击