[問題]C語言如何更改字串中的字串
如題
假設有
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
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.83.155.11
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1463409362.A.256.html
推
05/16 22:57, , 1F
05/16 22:57, 1F
什麼是越界存取QQ
我蔡b8
→
05/16 23:42, , 2F
05/16 23:42, 2F
→
05/16 23:43, , 3F
05/16 23:43, 3F
→
05/16 23:44, , 4F
05/16 23:44, 4F
→
05/16 23:45, , 5F
05/16 23:45, 5F
我才大一只學過c哈哈
→
05/16 23:50, , 6F
05/16 23:50, 6F
大概知道你的意思了 超過宣告的大小吼QQ
我自己做到往左位移那裡都ok
往右位移我是從結束字元的上一個開始往前更改 這裡編譯的過但是執行不了
應該到這裡都還沒有所謂越界存取的問題QQ
→
05/17 01:24, , 7F
05/17 01:24, 7F
→
05/17 01:24, , 8F
05/17 01:24, 8F
編譯的過 但執行不了XDD
※ 編輯: Neverfor (223.141.99.132), 05/17/2016 11:55:10
→
05/17 12:22, , 9F
05/17 12:22, 9F
→
05/17 12:23, , 10F
05/17 12:23, 10F
→
05/17 12:24, , 11F
05/17 12:24, 11F
→
05/17 12:24, , 12F
05/17 12:24, 12F
推
05/17 23:07, , 13F
05/17 23:07, 13F
推
05/23 23:04, , 14F
05/23 23:04, 14F