aarchy 2020-04-12 22:57 采纳率: 0%
浏览 1270

不调用库函数,自己实现字符串替换操作如何做

函数原型为:
int str_replace(const char *in, char *out, int outlen, const char *oldstr, const char *newstr);
参数说明:
in, 原始字符串,保持不变
out, 存放替换结果的字符串
outlen,out空间的大小
oldstr,要替换的旧字符串
newstr,替换成的新字符串
函数返回成功替换的次数,即有多少个子串被成功替换
在替换过程中,任何情况下所得字符串(及结束符)不应该超过 outlen,如果某次替换所得字符串的长度超过 outlen,则不进行这次替换操作,整个替换操作结束。如:
原始串为 "aaabbbccc",outlen 为14, oldstr 为 "c",newstr 为 "333" 时,两次替换后得 "aaabbb333333c",此时字符串占用空间为14字节。
如果再进行替换,则会超出 out 所占用的空间,所以停止替换操作。此时函数应该返回 2, out指向的串为 "aaabbb333333c"
再如:原始串为 "aaabbbccc",outlen 为10, oldstr 为 "bb",newstr 为 "123456",进行替换后所得的串应该为 "aaa123456" (长度为9)与结束符一共占 10 个字节,此时函数应该返回 1。

  • 写回答

1条回答 默认 最新

  • threenewbee 2020-04-13 09:30
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 python天天向上类似问题,但没有清零
  • ¥30 3天&7天&&15天&销量如何统计同一行
  • ¥30 帮我写一段可以读取LD2450数据并计算距离的Arduino代码
  • ¥15 C#调用python代码(python带有库)
  • ¥15 矩阵加法的规则是两个矩阵中对应位置的数的绝对值进行加和
  • ¥15 活动选择题。最多可以参加几个项目?
  • ¥15 飞机曲面部件如机翼,壁板等具体的孔位模型
  • ¥15 vs2019中数据导出问题
  • ¥20 云服务Linux系统TCP-MSS值修改?
  • ¥20 关于#单片机#的问题:项目:使用模拟iic与ov2640通讯环境:F407问题:读取的ID号总是0xff,自己调了调发现在读从机数据时,SDA线上并未有信号变化(语言-c语言)