把字串中的空格用%20代替。
統計空格個數,從後往前賦字元。
#include using namespace std;
//函式功能:把字串中的空格用%20代替
//思路:統計空格個數,從後往前賦字元
//注意點:要判斷字串的位元組個數是否夠替換後的字元數,如果不夠則不能替換
void replacebland(char string , int length)
int newlen = len + 2 * blank;
if(newlen > length - 1)
return;
for(int i = len -1 , j = len + 2 * blank - 1 ; i >= 0 ; i--)
else
}}int main()
{ char str[22] = "hello world";
int len = sizeof(str) / sizeof(str[0]);
replacebland(str,len);
cout<
(歸併排序):把兩個有序陣列a、b都放到a內使得陣列仍然有序,參考: 。
先計算總長度,然後從最後開始比較,大的放到a的最後(a的長度足夠)。注意傳入的如果是整型指標的話,一般還要傳入陣列的長度,不然無法計算出陣列的長度。如果用*p判斷的話求的長度是到0的個數,如果用p判斷的話,結果不可預料。而傳入的如果是字元指標的話,一般可以用*p == 『\0』進行判斷。
劍指offer之空格替換
請實現乙個函式,把字串 s 中的每個空格替換成 20 示例 看到這道題,我們首先應該想到的是原來的空格被替換成 2 0 著三個字元,因此字串會變長,如果在原來的字串上進行替換,那麼就有可能覆蓋修改在該字串後面的記憶體。如果是建立新的字串並在上面進行替換,那麼我們可以自己分配足夠的記憶體。考慮執行替換...
。。。劍指Offer之 替換空格。。。
1 public string replacespace stringbuffer str 7int count 0 統計空格數目 8int length str.length 9 迴圈用來統計空格數目 10for int i 0 i length i 14 15 新的字元個數 原來字串長度 2倍的...
劍指offer 替換空格
思路 首先遍歷字串,找出空格的數量countspace,計算變換後的總長為newlength str.length 2 countspace。定義心得字元陣列,長度為newlength 從字串的後面開始複製和替換,如果不是空格,就複製,如果是空格,就變為 20.難點 牛客網上傳入引數是stringb...