字串按照單詞為單位逆序排列

2021-10-06 03:18:15 字數 875 閱讀 3936

字串排序問題:

給定乙個字串「i love china」,編寫程式完成以單詞為單位的逆序,如"china love i",並要求不使用第三方變數儲存資料,但可以使用輔助指標變數

這道題如果沒有「要求不使用第三方變數儲存資料」則很輕鬆,當然這裡字串肯定要用乙個陣列進行存放的,意思是不能再定義乙個陣列存放排列好的字串,那樣的話就太簡單了。具體實現方法就是:

分兩步1 先按單詞逆序得到"i evol anihc",

2 再整個句子逆序得到"china love i"

對於步驟一,關鍵是如何確定單詞,這裡以空格為單詞的分界。當找到乙個單詞後,就可以使用上面講過的方法將這個單詞進行逆序,當所有的單詞都逆序以後,將整個句子看做乙個整體(即乙個大的包含空格的單詞)再逆序一次即可。

具體實現**如下:

#include

#define debug() printf("%s %s %d\n",__file__,__function__,__line__)

void reverseword(char *m,char *n)//將指標p與指標q之間的所有字元逆序

}char *reversesentence(char *s)//對字串中的每個單詞進行逆序排列,形成正序的單詞

else

q++;//q指向空格或'\0'

}reverseword(p,q - 1);//交換最後乙個單詞

reverseword(s,q - 1);//對整個句子逆序

return s;

}int main()

執行結果如下:

fs@ubuntu:~/qiang/string$ ./string3

after reversing,the string is:china love i

字串按照單詞為單位逆序排列

我們前面已經寫過乙個簡單字串逆序排序的方法,這裡再開乙個字串排序問題 給定乙個字串 i love china 編寫程式完成以單詞為單位的逆序,如 china love i 並要求不使用第三方變數儲存資料,但可以使用輔助指標變數 這道題如果沒有 要求不使用第三方變數儲存資料 則很輕鬆,當然這裡字串肯定...

輸入字串以單詞為單位進行反轉

2.實現乙個方法,輸入字串以單詞為單位進行反轉,例如i like you 反轉為you like i,不可使用string等 char reverse char input package com.leetcode 轉換字串中單詞的順序 輸入 the sky is blue 輸出 blue is s...

字串中特定單詞逆序

題目是 讀入一行文字,包含若干個單詞 以空格間隔,結尾 將其中以 a 開頭的單詞與以 n 結尾的單詞,用頭尾交換的辦法予以置換。先看源程式 t.cpp 定義控制台應用程式的入口點。include stdafx.h include using std string using namespace st...