看板 C_and_CPP 關於我們 聯絡資訊
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) Linux 問題(Question): 看到一個字串字元處理的題目 要將一個字串傳入removeChars function,刪掉其中的某些字元 程式碼如下: http://codepad.org/Zdhew2lr 題目本來是給定用void removeChars_cstring2 這個function 小弟用了其它兩個方法: 1.string removeChars_string(char *str, char *remove) 用最直觀的c++ string 2.char *removeChars_cstring1(char *str, char *remove) function內動態記憶體配置,再return出去 但是題目本身出的void removeChars_cstring2(char *str, char *remove) 我不知道要怎麼直接讓傳進去的str處理完(不用到其它新的儲存空間) 問題大概是出在line65,66這裡 用strncpy,strncat也不行@@ 請問這該怎麼做呢? 謝謝大家 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 180.176.221.68
Feis:用搬移的. 想想 remove 前跟 remove 後的差異 11/17 10:52
cutekid:http://codepad.org/nC75gtbh 11/17 11:56
Hyozero:感謝cute大!! 11/17 13:07
Hyozero:原來錯在main()的char *p1不是合法空間,沒發現到呀 QQ 11/17 13:08
Feis:不. 從函式來看主要是 '\0', p1 是因為你亂宣告 11/17 13:21
Feis:你自己將 p1 成陣列也會是錯的 11/17 13:22
Hyozero:嗯嗯 append null的確是沒注意到,char *p1是題目寫的 XD 11/17 13:38
Hyozero:感謝兩位幫忙 11/17 13:38
Feis:聽起來有點怪, 不是題目亂出可能就是會錯意. 11/17 13:42
Feis:題目應該只有給你參數型態, 如果把 main 給你就有點怪 11/17 13:46
Hyozero:可能他設陷阱吧 XDD 11/17 13:49
Feis:但是感覺 main 就不是題目給的阿.... 11/17 15:08