有一个字符串,内有若干个字符,今输入一个字符,要求程序将字符串中该字符删去,不知道程序哪里出错了

#include<stdio.h>
void main()
{

void delete_string(char str1[],char str2[],char ch);

char c;
char str1[80],str2[80];
printf("输入字符串:\n");
gets(str1);

printf("输入要删除的字符:\n");
scanf("%c",&c);
delete_string(str1,str2,c);
printf("%s\n",str2);
}

void delete_string(char str1[],char str2[],char ch) //删除字符
{
int i,j=0;
for(i=0;str1[i]!='\n';i++)
{
if(str1[i]!=ch)
{
str2[j]=str1[i];
j=j+1;
}
else str2[j]='\0';
}
}
for(i=0;str1[i]!='\n';i++)
写错了,应为for(i=0;str1[i]!='\0';i++)
为啥执行时后面会有很多乱码

void delete_string(char str1[],char str2[],char ch) //删除字符
{
int i,j=0;
for(i=0;str1[i]!='\0';i++)
{
if(str1[i]!=ch)
{
str2[j]=str1[i];
j=j+1;
}
}
str2[j]='\0'; /* 字符串结束符 */
}
温馨提示:答案为网友推荐,仅供参考
相似回答