如何编写一段字符串删除函数?

#include<stdio.h>
#include<string.h>     
void mystrdel(char str1[], char str2[], int m, int n){
    int i;
    for(i = m-1; str1[i+n] != '\0'; i++){
        str1[i] = str1[i+n];  //把空缺的部分用后面的字符补上 
    }
    str1[i] = '\0';       //后面多余重复的部分归0 
    strcpy(str2, str1);    //把修改后的str1赋给str2 
}

int main(){
    char str1[100] = {0}, str2[100] = {0};
    int m, n;
    scanf("%s", str1);
    scanf("%d %d", &m, &n);
    printf("删除子串前str1:%s\n", str1);
    mystrdel(str1, str2, m, n);
    printf("删除子串后str1:%s\n\n", str1);
    printf("str2:%s", str2);
}