说明:dst
为指示目的串起始地址的指针,idx
为待删除子串的起始位置(下标),len
为待删除子串的长度,src
为指示待插入源串的起始地址的指针。函数将目的串 dst
中从下标 idx
处开始、长度为 len
的子串替换为源串 src
,函数值为 dst
。
要求:函数能容错运行。若 len
不正确,则自动修正。若 idx
不正确,则不作任何处理。
#include <stdio.h>
// 替换子串
char* StrStuff(char *dst, int idx, int len, const char *src);
int main()
{
char a[1024], b[1024];
int i, n;
gets(a);
scanf("%d%d%*c", &i, &n);
gets(b);
StrStuff(a, i, n, b);
puts(a);
return 0;
}
/* 你提交的代码将被嵌在这里 */
替换字串要用到strcpy函数(拷贝函数)和strcat函数(连接两个字符串的函数)。
1.strcpy函数:
(1)strcpy(s1,s2):将s2的内容复制到s1中;
(2)strcpy(s1+m,s2):将s2的内容复制到s1第m个字符之后;
例如:
(3)strcpy(s1,s2+m):将s2的第m个字符后的内容复制到s1中
例如:
(3)strcpy(s1+m,s2+n):将s2第n个字符后面的内容复制到s1的第m个字符后面
例如:
2.strcat函数
strcat(s1,s2):将s2连接到s1后面
故解题分3步:
(1)将src复制到dst第index个字符后面
strcpy(dst+index,src)
(2)将dst第index+len个字符后面的内容复制到新开辟的空间str中
strcpy(str,dst+index+len)
(3)将str与dst连接
strcat(dst,str)