經典面試題 翻轉英文句子中單詞的順序

2021-07-13 22:01:46 字數 875 閱讀 2134

題目:輸入乙個英文句子,翻轉句子中單詞的順序,但單詞內字元的順序不變。

句子中單詞以空格符隔開。為簡單起見,標點符號和普通字母一樣處理。

例如輸入"i am a student.",則輸出"student. a am i"。

思路:若字串中有n個空格符' ',則該字串可被空格符分割成n+1部分,比如字串"good luck to you!"中有3個空格符,因此被分割成4部分:"good"、"luck"、"to"、"you!"。分割出來的每一部分均進行翻轉操作,有:"doog"、"kcul"、"ot"、"!uoy",而空格符處不加改動,則原字串變為"doog kcul ot !uoy"。最後用字串翻轉函式strrev()對字串"doog kcul ot !uoy"進行翻轉,得到的結果為:"you! to luck good",即題目要求的結果。

程式設計的關鍵在於:如何翻轉由空格符分割出來的子字串。我們可用乙個迴圈來探測輸入字串中的空格符,找到空格符後,將' '替換為'\0',則可使用strrev函式來翻轉以新替換的'\0'為結尾的子字串,翻轉後再將'\0'換回' '。

**如下,可以看到,該方法的**量比網上的一些解法要小。

#include #include using namespace std;

void reverse(char );

int main()

void reverse(char a)

}strrev(temp); //最後乙個空格符之後的子字串不要忘了翻轉

strrev(a); //對經迴圈改動後的字串統一進行翻轉

}

翻轉英文句子中單詞的順序

利用字串中的索引下標進行定位,先將整個英文句子翻轉,而後將每個英文單詞進行翻轉 程式說明 將乙個英文句子翻轉,單詞中的字母順序不變 程式思路 先將整個句子翻轉,然後將各個單詞中的字母順序翻轉 include include using namespace std 將從指標begin到end指標之間的...

翻轉句子中單詞的順序 面試題

題目描述 翻轉句子中單詞的順序,但單詞內字元的順序不變。句子中單詞以空格符隔開。為簡單起見,標點符號和普通字母一樣處理。如 i am a student.翻轉成 student.a am i 常見面試題 include include include includeusing namespace s...

開心IT面試題 翻轉句子中單詞的順序

題目 輸入乙個英文句子,翻轉句子中單詞的順序,但單詞內字元的順序不變。句子中單詞以空格符隔開。為簡單起見,標點符號和普通字母一樣處理。例如輸入 i am a student.則輸出 student.a am i 思想 首先將整個句子翻轉,然後再分別將每個單詞翻轉。將字串中從left到right的子字...