示例一:
char *insert(char *s1, char *s2, int n) { int len1 = 0, len2 = 0, j = 0, len3,
k = 0; char s4[30]; char *s3 = s4; if (s1 == NULL) return NULL; if (s2 == NULL)
return s1; len1 = strlen(s1); len2 = strlen(s2);   if(n>len1) return NULL; for
(int i = 0; i<n; i++) { j++; } for (int i= 0; i<len1; i++) { s4[k++] = s1[i]; }
for (int i = 0; i<len2; i++) s1[j++] = s2[i];    for(int i=n;i<len1;i++)
s1[j++]=s4[i]; s1[j] = '\0'; return s1; } int main(void) { char *s1 =
(char*)malloc(20 * sizeof(char)); char *s2 = (char*)malloc(20 * sizeof(char));
int n; char s3[30]; char *newstr = s3; printf("请输入第一个字符串:"); scanf("%s", s1);
printf("请输入第二个字符串:"); scanf("%s", s2); printf("请输入插入的位置:"); scanf("%d", &n);
newstr = insert(s1, s2, n); printf("%s\n", newstr); getchar(); system("pause");
return 0; }
结果:



示例二:插入后原字符串后面的字符去掉了
void Insert(char* s1, char* s2, int n) { char *result = (char*)malloc(20 *
sizeof(char)); char *temp = result;//保存result的初始地址,因为后面要改变result
//把s1的一部分赋给result for (int i = 0; i<n; i++) { *result = *(s1++); result++; }
//把s2的所有内容赋给result while (*s2 != '\0') { *result = *(s2++); result++; } *result
= '\0';//字符串结束符 printf("%s\n", temp); } int main() { char *s1 =
(char*)malloc(20 * sizeof(char)); char *s2 = (char*)malloc(20 * sizeof(char));
int n; printf("请输入第一个字符串:"); scanf("%s", s1); printf("请输入第二个字符串:"); scanf("%s",
s2); printf("请输入插入的位置:"); scanf("%d", &n); Insert(s1, s2, n); getchar();
system("pause"); return 0; }
 结果:


友情链接
KaDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:ixiaoyang8@qq.com
QQ群:637538335
关注微信