各位能帮我看看为什么我这个最后输出的是空字符串吗?

#include
#include

void rremove(char str[],char ch);
int main(){
char str[100];
char ch;
gets(str);
ch = getchar();
rremove(str,ch);
puts(str);
}
void rremove(char str[],char ch)
{
int n,i = 0,a;
char s[100];
scanf("%c",&ch);
while(str[i] != '\0')
i++;
a = i;
for(i = 0;i <= a;i++)
{
if(str[i] != ch)
{
for(n = 0;n <= a;n++)
s[n] = str[i];
}
}
for(i = 0;i < a;i++)
str[i] = s[i];

}

问题解决的话,请点一下采纳

#include<stdio.h> 
#include<string.h>
void rremove(char str[],char ch);
int main(){
    char str[100];
    char ch;
    gets(str);
    ch = getchar();
    rremove(str,ch);
    puts(str);
}
void rremove(char str[],char ch)
{
    int i = 0, n = 0;
    while(str[i] != '\0')
    {
        if (str[i] != ch)
        {
            str[n] = str[i];
            n++;
        }
        i++;
    }
    str[n] = '\0';
}