這個問題的重點是不使用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的整型陣列,每個...