字串處理之反轉單詞

2021-07-26 16:03:37 字數 1109 閱讀 4434

103. 反轉單詞

時間限制 1000 ms

記憶體限制 65536 kb

題目描述

給出一句英文句子(只由大小寫字母和空格組成,不含標點符號,也不會出現連續的空格),請將其中的所有單詞順序翻轉

輸入格式

多組資料,以eof結束。

每行一句英文句子(確保只由大小寫字母和空格組成,不含標點符號,也不會出現連續的空格,字串總長度1000以內)

輸出格式

每組資料輸出一行,為反轉後的字串

輸入樣例

輸出樣例

思路:

1. 從後向前,依次對每個單詞進行反轉,以空格作為乙個單詞的結束符。

2. 每次輸出單詞時,以上一次的空格tmp為結束符(包括tmp),初始時tmp一定要等於字串的長度,這樣確保tmp初試時就為'\0', 因為為字串的結束符就是'\0'. 這樣便於後面的輸出。

3. 本題要求是對句子中的每個單詞反轉,句子中間含有空格,因此輸入時不能用scanf函式,只用用gets函式

4. scanf 和 gets 函式的區別:

scanf在讀入字串時,遇到空格和回車都會停止輸入,並將空格和回車clear.

而gets函式會接受空格這個字元,遇到回車停止,並自動清除回車

ac**:

#include#include#includeusing namespace std;

char str[1005];

int main(){

while(gets(str)!=null){

//gets()會將回車讀入,並自動去掉回車

int tmp = strlen(str); //tmp用來記錄空格的位置

for(int i=tmp;i>=0;i--)

{ if(str[i]==' ')

{for(int j=i+1;j<=tmp;j++)

cout<

字串反轉,單詞反轉

一 字串反轉,共蒐集了 7 種方法 public class stringreversed public static void reverse1 string s char c s.tochararray 方法二 for int i 0 i s.length 2 i for char l c sy...

字串單詞反轉

class solution param s,a string return a string def reversewords self,s if len s 0 return s s join s.split 去掉所有的空格,只保留字元 串 之間的空格 s s.strip strip 去掉字串兩...

字串 反轉單詞不反轉單詞內容

反轉句中的單詞 單詞內容不變 比如 輸入wuhan is dog 輸出 dog is wuhan 和字串迴圈左移類似 兩次反轉 先整體反轉 再用split函式 分割 再依次反轉合併 class solution public string fun string s stringbuffer sb n...