1. 程式人生 > >按單詞反轉字串

按單詞反轉字串

                並不是簡單的字串反轉,而是按給定字串裡的單詞將字串倒轉過來,就是說字串裡面的單詞還是保持原來的順序,這裡的每個單詞用空格分開。例如:Here is www.zhuxinquan.com經過反轉後變為:www.zhuxinquan.com is Here

如果只是簡單的將所有字串翻轉的話,可以遍歷字串,將第一個字元和最後一個交換,第二個和倒數第二個交換,依次迴圈。其實按照單詞反轉的話可以在第一遍遍歷的基礎上,再遍歷一遍字串,對每一個單詞再反轉一次。這樣每個單詞又恢復了原來的順序。

先參考文章:

http://www.360doc.com/content/14/0306/23/16145154_358375004.shtml

自己實現的:

void reverse_str(char* strInput,int nStart,int nEnd)if ( nStart >= nEnd || nStart <0 || nEnd >= strlen(strInput)) {  return; } while(nStart < nEnd) {  char cTemp = strInput[nStart];  strInput[nStart] = strInput[nEnd];  strInput[nEnd] = cTemp;  nStart++;  nEnd--; }}//完成單詞倒轉,比如"i am who"轉換成"who am i"
void reverse_word(char* strInput)//轉換成ohm ma i reverse_str(strInput,0,strlen(strInput)-1); //ohw ma i 每個單詞反轉 char* strStart = strInput; int nStart = 0int nEnd = 0while( *strInput != '\0') {  if ( *strInput == ' ')  {   reverse_str(strStart,nStart,nEnd-1);   nStart = nEnd +1;   strStart = strInput;  }  nEnd ++;  strInput ++; }}