newcoder在線編程2--句子翻轉

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;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章