1. 程式人生 > 其它 >【HJ13】句子逆序

【HJ13】句子逆序

技術標籤:《牛客刷題》系列c++字串

題目描述

將一個英文語句以單詞為單位逆序排放。例如“I am a boy”,逆序排放後為“boy a am I”
所有單詞之間用一個空格隔開,語句中除了英文字母外,不再包含其他字元

輸入描述:
輸入一個英文語句,每個單詞用空格隔開。保證輸入只包含空格和字母。

輸出描述:
得到逆序的句子

示例1

輸入
I am a boy

輸出
boy a am I

題解思路

利用 strtok 函式分割每行字串,用 C++ stack 儲存及輸出逆序的字串。

程式碼實現

#include <iostream>
#include <cstring>
#include <string> #include <stack> int main() { using namespace std; char strs[1000] = {0}; stack<string> st; const char * patterm = " "; while(cin.getline(strs, 1000)) { char *p = strtok(strs, patterm); while(p) { st.push(p); p =
strtok(nullptr, patterm); } while(!st.empty()) { cout << st.top() << " "; st.pop(); } } return 0; }

結果