Baldboy 2019-12-12 10:19 采纳率: 16.7%
浏览 120
已采纳

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

#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];

}

  • 写回答

1条回答 默认 最新

  • threenewbee 2019-12-12 10:26
    关注

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

    #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';
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?