【pat乙級】說反話

(pat乙級1009)

給定一句英語,要求你編寫程序,將句中所有單詞的順序顛倒輸出。

輸入格式:
測試輸入包含一個測試用例,在一行內給出總長度不超過 80 的字符串。字符串由若干單詞和若干空格組成,其中單詞是由英文字母(大小寫有區分)組成的字符串,單詞之間用 1 個空格分開,輸入保證句子末尾沒有多餘的空格。

輸出格式:
每個測試用例的輸出佔一行,輸出倒序後的句子。

輸入樣例:
Hello World Here I Come

輸出樣例:
Come I Here World Hello

c++代碼:

#include<iostream>
using namespace std;
int main(){ 
    string s;
    getline(cin,s);
    int l=s.length(),end=l-1,start=end;
    for(int i=end;i>=0;i--){
        if(s[i]==' '&&i!=0){
            start=i+1;
            cout<<s.substr(start,end-start+1)<<" ";
            end=start-2;
        }
        else if(i==0){
           cout<<s.substr(0,end+1);
        }
    }
    return 0;
}  

注意:
用兩個變量start、end標識一個單詞的開始和結束位置,用s.substr(startlocation,wordnum)來得到一段字符串作爲單詞。
從後向前遍歷字符串查找空格,找到一個單詞輸出一個單詞,得到單詞逆序,最後遍歷到0位置時不再輸出空格。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章