[问题]C语言如何更改字串中的字串

楼主: Neverfor (八卦蟑螂)   2016-05-16 22:36:00
如题
假设有
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
作者: james732 (好人超)   2016-05-16 22:57:00
这个例子不会造成越界存取吗?
作者: Caesar08 (Caesar)   2016-05-16 23:42:00
所以简单来说,就是你要把一段字串里的A字串改成B字串?如果是这样,那你要先考虑原本字串大小的问题如果原字串太小,那到时候replace时,就会有未定义行为
作者: descent (“雄辩是银,沉默是金”)   2016-05-16 23:45:00
用 c 太难了
作者: james732 (好人超)   2016-05-16 23:50:00
如果你连array的范围都没概念的话就很难说了orz
作者: phishingphi (hsnutontu)   2016-05-17 01:24:00
编译不过这个不是compiler会跟你说message吗?不至于不知道错在哪里
作者: MOONRAKER (㊣牛鹤鳗毛人)   2016-05-17 12:22:00
可短不可长,长了你就只好产生加长的阵列把原来的阵列指标盖掉。如果原始阵列不准改,那便无解。这也是C的字串不好用的地方 但若不是非要在原来阵列内更改 那也还好 实用上也是如此
作者: EdisonX (卡卡兽)   2016-05-17 23:07:00
一个疑问... 不考虑用 string.h 吗 ??
作者: sss22213 (sss22213)   2016-05-23 23:04:00
十三戒先看一下

Links booklink

Contact Us: admin [ a t ] ucptt.com