插入字符串,字符的移动

img

请各位帮我看看怎么做,数组看的很迷茫,看着不怎么懂,怎么做啊

img

代码如下

void Instr(char a[],char b[],int n)
{
    //插入到n的位置需要将n以后值向后移动一位
    //1 首先将n之后a的数组存起来。2 将b的数组加入到a的n之后。3将存起来的数组再加入到a
    char c[100];
    int i_size=strlen(a);
    int b_size=strlen(b);
    int i_count=0;
    for(int i=n;i<i_size;++i)
    {
        c[i-n]=a[i];
        
    }
    for(int i=n;i<b_size+n;++i)
    {
        a[i]=b[i-n];
        i_count++;
    }
    int i_val=n+i_count;

    int c_size=strlen(c);

    for(int i=0;i<c_size;++i)
    {
        a[i_val+i]=c[i];
    }
    printf("%s",a); 
}

int main() {

    char a[100]="123456789";
    char b[10]="11234";
    int n=3;
    Instr(a,b,n);
 
    return 0;
}