在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
char* strins(char* dest, const char* src, int pos) { int len = strlen(src); for (int i = strlen(dest); i >= pos; i--) dest[i + len] = dest[i]; // 同时也拷贝字符串结束符 for (int j = pos; j < pos + len; j++) dest[j] = src[j - pos]; return dest; } 另一种方法: void insert(char *s, char *t, int i) { char *q = t; char *p = s; if (q == NULL) return; while (*p != '\0') { if (0 >= --i) { memmove(p + strlen(t), p, strlen(p)); break; } p++; } while (*q != '\0') { *p = *q; p++; q++; } } 貌似再优化也需要2次循环,一次将插入位置后的子串后移,一次将新子串赋值到插入位置。 需要注意的是内存溢出的问题,目标字符串必须有足够的空间。 |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论