如果你要做到這一點的C方式,我建議你嘗試這樣的事:
void adjust_string(char*output_p, int output_space, const char* input_p)
{
//while (there is still input left, and room in output buffer) {
while (*input_p!='\0' && output_space>2) {
//copy input character to output
//update the output pointer
//update the amount of room left in the output buffer
//if (its a special character) {
//add the extra character to output
//update the output pointer
//update the amount of room left in the output buffer
}
//update the input pointer
input_p++;
}
//null-terminate the output string
}
在調用這個函數的函數中,你需要提供一個數組來放置輸出並指定它的長度,所以你不能得到緩衝區溢出。
注意:在檢查輸出緩衝區中的空間時,您需要考慮添加額外字符的可能性以及終止空字符的空間。
您檢查它是否不爲空。這個過程對於任何你想比較的其他角色來說都是一樣的。 – shawn1874
你真的想用C數組的char而不是C++ std :: string嗎? C數組更加棘手,您還需要將數組中可用的內存長度傳遞給函數。您是否必須在原地進行操作,或者輸出字符串是否可以位於不同的陣列中?後者會更容易。 – sj0h
謝謝,但我檢查它是否等於'。'但我無法解決更多的問題,另一件事我想如何插入內部公羊的角色,我的意思是與任何數量的字符陣列,可以消耗它? – user3457718