字串A中出現B時就用C來代替

2021-08-03 02:17:45 字數 615 閱讀 8825

這個問題的重點是不使用stl

c語言的動態分配記憶體:

cstring庫中的函式:

該演算法使用的格外空間大小 o(

nanb

) ,沒有改變p_a,p_b,p_c所指向的值,輸出的結果儲存在動態分配的記憶體中。

思路:找出a中所有b的開始位置,儲存在陣列arr_b_in_a中,arr_b_in_a的大小為b可能出現的最大次數。

使用strncat拼接p_a和p_c

#include 

#include

char* string_replace(char* p_a, char* p_b, char* p_c)

}if (pos_end == 0)

char* res = (char*)malloc(n_a + pos_end * (n_c - n_b));

for (int i = 0; i != pos_end; i++)

strncat(res, p_a + arr_b_in_a[pos_end-1] + n_b, n_a);

free(arr_b_in_a);

return res;

}int main()

使用ENUM來代替字串型別

這個表包含了110,000條記錄,只有10mb大小,所以可以全部放到記憶體中。service列有5個不同的值,平均字元長度為4個字元,method列有71個值,平均長度為20個字元。我們複製了該錶,把service和method列轉換為enum,如下 create table webservicec...

刪除字串中出現次數最少的字元

編寫乙個函式,刪除字串中出現次數最少的字元,若多個字元出現次數一樣,則都刪除。輸出刪除這些單詞後的字串,字串中其它字元保持原來的順序。格式說明 字串只包含字母,不可能為空串,不包含空格,單詞只由小寫英文本母組成,輸入的字串長度不會超過20 個char 演算法思路 1 定義乙個長度為26的整型陣列 下...

刪除字串中出現次數最少的字元

編寫乙個函式,刪除字串中出現次數最少的字元,若多個字元出現次數一樣,則都刪除。輸出刪除這些單詞後的字串,字串中其它字元保持原來的順序。格式說明 字串只包含字母,不可能為空串,不包含空格,單詞只由小寫英文本母組成,輸入的字串長度不會超過20個char 演算法思路 1 定義乙個長度為26的整型陣列,每個...