c删掉字符串中的数字?

问题遇到的现象和发生背景

删除字符串中的数字 #define N 6

用代码块功能插入代码,请勿粘贴截图
int i;
char ch[N];
printf("请输入字符串:\n");
for(i=0;iscanf("%c",&ch[i]);
}
printf("过滤后的字符为:\n");
for(i=0;iif(ch[i]>='0'&&ch[i]<='9')
    {
        ch[i]=ch[i+1];
    }
     printf("%c",ch[i]);
}
return 0;

}

运行结果及报错内容

为什么输入7he5,输出是hhe啊?

我的解答思路和尝试过的方法

我想的是当元素是数字时,就让后面的元素覆盖住数字

我想要达到的结果

成功

你这种写法逻辑有误,当输入7he5时,会把h往前移,但是e不会往前移,所以得到的结果为hhe,里面会有两个h。
提供一种思路:遍历数组,保留不为数字的字符

int i=0,j=0;
while(ch[i]!='\0')
{
    if(ch[i]<'0'&&ch[i]>'9')
    {
        ch[j]=ch[i];
        j++;
    }
    i++;
}


#include <stdio.h>
#define N 6
int main() {
    char ch[N],s[N],j=0;
    printf("请输入字符串\n");
    for (int i =0; i<N; i++) {
        scanf("%c",&ch[i]);
    }
    printf("过滤后的字符为:\n");
    for (int i = 0; i < N; i++) {
        if (ch[i]<'0'||ch[i]>'9') {
            printf("%c", ch[i]);
            s[j] =ch[i];
            j++;
        }
    }
    printf("\n过滤后的字符为:\n");
    for (int i = 0; i < j; i++) {
            printf("%c", s[i]);
    }
    
    return 0;
}