插入子串* 分数 10 作者 李祥 单位 湖北经济学院 请编写函数,在目的串中插入源串。 函数原型 char* StrInsert(char *dst, int idx, const char *src); 说明:dst 为指示目的串起始地址的指针,idx 为插入位置(下标),src 为指示源串起始地址的指针。函数在目的串 dst 下标 idx 处插入源串 src,函数值为 dst。若 idx 不正确,则不插入子串。 要求:直接在原数组上完成操作,不要借助其它数组。 裁判程序 #include <stdio.h> char* StrInsert(char *dst, int idx, const char *src); int main() { char a[1024], b[1024]; int i; gets(a); scanf("%d%*c", &i); gets(b); StrInsert(a, i, b); puts(a); return 0; } /* 你提交的代码将被嵌在这里 */
时间: 2024-03-13 07:48:03 浏览: 53
```
#include <stdio.h>
#include <string.h>
char* StrInsert(char *dst, int idx, const char *src) {
int dst_len = strlen(dst);
int src_len = strlen(src);
int i;
if (idx < 0 || idx > dst_len) {
return dst;
}
for (i = dst_len; i >= idx; i--) {
*(dst + i + src_len) = *(dst + i);
}
for (i = 0; i < src_len; i++) {
*(dst + i + idx) = *(src + i);
}
return dst;
}
int main() {
char a[1024], b[1024];
int i;
gets(a);
scanf("%d%*c", &i);
gets(b);
StrInsert(a, i, b);
puts(a);
return 0;
}
```
阅读全文