在s1中指定位置pos插入子串s2

完整函数该如何写

int strInsertSub(SqString *s1,SqString *s2,int pos)
{
    int k;
    if(pos<1||pos>s1->length+1) return ERROR;
    while(s1->length>=s1->stringsize)
    {
        s1->data=(char *)realloc(s->data,(s1->stringsize+20) * sizeof(char));
        if(!s1->data) return ERROR;
        s1->stringsize+=20;






    }
   


int strInsertSub(SqString *s1, SqString *s2,int pos){
    int k;
    if(pos<0||pos>s1->length) return ERROR;
    int i = s1->length + s2->length;
    if(i + 1>=s1->stringsize){
        s1->data=(char*)realloc(s1->data,(i+2) * sizeof(char));
        s1->stringsize = (i+2) * sizeof(char);
    }
    s1->data[i + 1] = '\0';
    while(i>=pos){
        s1->data[i] = i>=pos+s2->length?s1->data[i-s2->length]:s2->data[i-pos];
        i -= 1;
    }
    return 1;
}