问题分析
编写函数,要在a字符串中给定位置(从1开始)插入字符串b然后结束输出结果
例如:
abcdefg
1234
2
a1234bcdefg
c语言代码
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define N 20
void *my_insert(char *a,char *b,int n);
//例如abcdefg中第二个位置插入1234 结果变为a1234bcdefg
int main()
{
char a[N],b[N];
int n;
puts("请输入第一个字符串:");
gets(a);
puts("请输入第二个字符串:");
gets(b);
puts("请输入插入位置:");
scanf("%d",&n);
my_insert(a,b,n);
}
void *my_insert(char *a,char *b,int n){
int i,j,k,count=0;
int lena=strlen(a);
int lenb=strlen(b);
char temp[lena+lenb+1];
for(i=0;i<n-1;i++){
temp[count]=*(a+i);//把前面几个位置的字符进temp数组
count++;
}
for(j=0;j<lenb;j++){
temp[count]=*(b+j);//把前数组的进temp数组
count++;
}
for(k=n-1;k<=lena;k++){
temp[count]=*(a+k);
count++;
}
puts(temp);
}
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210319211033491.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xhbm15X2Rs,size_16,color_FFFFFF,t_70)