输入一个字符串 str,再输入一个字符 c,将字符串 str 中出现的所有字符 c 删除 我的程序哪里出了问题?

#include<stdio.h>
int main(void
)
{
char c;
char str[80];
int repeat, ri;
void delchar(char *str, char c);

scanf("%d", &repeat);
getchar();
for(ri = 1; ri <= repeat; ri++){
gets(str);
scanf("%c", &c);
getchar();
/*---------*/

delchar(str, c);
printf("result: ");
puts(str);
}
}

/*---------*/
void delchar(char *str, char c)
{
int i,j;
for(i=0;str[i]!='\0';i++)
{
if(str[i]=='c')
{
for(j=i;str[j]!='\0';j++)
{
str[j]=str[j+1];
}
}
}
}

把void delchar(char *str, char c)函数里的if(str[i]=='c')改为if(str[i]==c);追问

是因为c只是一个参数而不是字符是吗?

追答

是的,你是要删除所有与参数相等的字符,而不是删除所有的c

还有就是把main函数里的delchar函数声明放在main函数外边

温馨提示:答案为网友推荐,仅供参考
相似回答