劍指offer 替換字串中的字元

2021-10-04 21:11:35 字數 1080 閱讀 7247

我們可以很容易替換字串中的字元。最簡單的辦法莫過於使用兩個陣列,遇到空格便將其替換為%20,然後繼續遍歷第乙個陣列。

#include

"stdafx.h"

#include

#include

using

namespace std;

char

*replacespace

(char

*str,

int length)

;int

_tmain

(int argc, _tchar* ar**)

char

*replacespace

(char

*str,

int length)

int newlen=length+cnt*2;

char

*str2=

newchar

[newlen]

;int j=0;

i=0;while

(istr2[i++

]=str[j++];

}return str2;

}

不過我們還可以用乙個字串陣列來完它。

我們先統計空格數cnt,然後估計出替換後所需的字串陣列所需的長度,即newlen=length+2*cnt

從後往前在原陣列中進行替換。從後往前的好處在於不會改變未遍歷過的原陣列字元

void

replacespace

(char

*str,

int length)

int newlen=length+cnt*2;

while

(newlen>=

0&&length>=0)

else

str[newlen--

]=str[length--];

}}

注意:如果要自己寫算例,要寫為字串陣列的形式,

即char a=「asdf」;這放在棧裡,可以修改,如果寫為

char *a=「asdf」;這是字串常量,放在**段,只能讀取,不能修改。

劍指offer 替換字串

思路 如果直接替換,就有可能覆蓋修改在字串後面的記憶體。如果建立新的字串並在新的字串上做替換,我們就可以分配足夠多的記憶體。對於任何乙個函式,我們要做哪些基本的檢測 1.傳入的引數有效性 2.函式體邊界的判斷 3.返回值正確返回 void replaceblank char str,int leng...

劍指Offer 替換字串

我是鏈結 2.題目描述 將乙個空格字元 替換為三個字元 20 需要三個字元的空間,則在第乙個空格後的字元需要後挪 2 1格,第二個空格後的字元需要後挪2 2格,第三個空格後的字元需要後挪3 2格 依此類 推。4.思路 遍歷字串記錄其中的空格個數,最後再根據空格的順序後挪該空格後的字串,同時替換空格 ...

《劍指offer》字串中的字元替換

char str 字串 int length 字串的長度 length為牛客系統規定字串輸出的最大長度,固定為乙個常數 class solution 分兩步 第一 先查詢字元陣列中有多少個空格,假設有n個空格。增加替換後陣列的長度,因為乙個空格用 20 三個字元去替換,所以每個空格就會是陣列增加2g...