如題
假設有
char str1[]="I am a student";
char str2[]="student";
char str3[]="hamburger";
想要把"I am a student"
改成 "I am a hamburger"
我有寫出
1.找到student的s的index的自訂函數,假設此函數return為pos。
2.欲取代字串之長度的函數,假設return
為replacement_length
3.原字串長度的函數,假設return
為length
那要如何用 pos str2 str1 length_和replacement_length用一個自定義函數replace更
改str1中的指定的str2為str3呢
字數一樣的很好改 但字數不一樣就要牽扯到位移方面的問題
麻煩各位大大了><
可以給個小暗示嗎QQ
我自己是想在自定義函數裡先刪掉 student (也就是從pos往左位移length)然後往右位移
replacement_length
再在pos補str3
補程式碼
http://codepad.org/qku4yiMd
作者:
Caesar08 (Caesar)
2016-05-16 23:42:00所以簡單來說,就是你要把一段字串裡的A字串改成B字串?如果是這樣,那你要先考慮原本字串大小的問題如果原字串太小,那到時候replace時,就會有未定義行為
作者:
descent (「雄辯是銀,沉默是金」)
2016-05-16 23:45:00用 c 太難了
如果你連array的範圍都沒概念的話就很難說了orz
作者: phishingphi (hsnutontu) 2016-05-17 01:24:00
編譯不過這個不是compiler會跟你說message嗎?不至於不知道錯在哪裡
可短不可長,長了你就只好產生加長的陣列把原來的陣列指標蓋掉。如果原始陣列不准改,那便無解。這也是C的字串不好用的地方 但若不是非要在原來陣列內更改 那也還好 實用上也是如此
作者:
EdisonX (卡卡獸)
2016-05-17 23:07:00一個疑問... 不考慮用 string.h 嗎 ??
作者:
sss22213 (sss22213)
2016-05-23 23:04:00十三戒先看一下