作者Hyozero (1)
看板C_and_CPP
標題[問題] 移除字串中的字元
時間Sun Nov 17 10:35:50 2013
開發平台(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
→ 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