C言語面接問題-文字列挿入


2つの文字列s,tはtをsに挿入し,sには十分な空間がある.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>


void insert(char *s,char *t, int i)
{
    char *q = t;
    char *p = s;
    if (q == NULL) return ;
    while(*p!='\0') {
        if ( 0 >= --i ) {
           printf("memove
"); memmove(p+strlen(t),p,strlen(p)); break; } p++; } while(*q!=0) { *p=*q; p++;q++; } } int main(void) { char a[100]="Hewwwllo"; char b[10]="abc"; insert(a,b,5); printf("%s
",a); }

間違いがあれば指摘してください.