题目描述
将一个英文语句以单词为单位逆序排放。例如“I am a boy”,逆序排放后为“boy a am I”
所有单词之间用一个空格隔开,语句中除了英文字母外,不再包含其他字符
接口说明
/**
* 反转句子
*
* @param sentence 原句子
* @return 反转后的句子
*/
public String reverse(String sentence);
输入描述:
将一个英文语句以单词为单位逆序排放。
输出描述:
得到逆序的句子
示例1
输出
复制boy a am I
思路:rfind找到空格然后字符串截取
注意读取使用getline,应该是跟cin直接读取的两个空格不一样,全角的问题
#include <iostream>
#include <string>
using namespace std;
int main()
{
string str;
string index;
int pos = 0;
getline(cin, str);
pos = str.rfind(" ");
while (pos >= 0) {
index += str.substr(pos + 1);
index += " ";
str = str.substr(0, pos);
pos = str.rfind(" ");
if (pos == -1) {
index += str;
}
}
cout << index << endl;
system("pause");
return 0;
}