newcoder在線編程2
題目描述
給定一個句子(只包含字母和空格), 將句子中的單詞位置反轉,單詞用空格分割, 單詞之間只有一個空格,前後沒有空格。 比如: (1) “hello xiao mi”-> “mi xiao hello”
輸入描述:
輸入數據有多組,每組佔一行,包含一個句子(句子長度小於1000個字符)
輸出描述:
對於每個測試示例,要求輸出句子中單詞反轉後形成的句子
示例1
輸入
hello xiao mi
輸出
mi xiao hello
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main()
{
string sentence;//聲明sentence爲string型
while(getline(cin, sentence)) //獲取一行字符串
{
reverse(sentence.begin(), sentence.end()); //將句子整體反轉,abcdefg-->gfedcba
unsigned i = 0, j = 0;
while(i < sentence.size())
{
while(i < sentence.size() && sentence[i] != ' ')
++i;
reverse(sentence.begin() + j, sentence.begin() + i);//以空格爲界,將每個子串反轉
j = ++i;
}
cout << sentence << endl;
}
return 0;
}