功能:编写函数void fun(char *str,char ch)从字符串str中删除指定的字符ch。 要求:本问题要求用两种算法分别实现,一是直接删除算法即查找符合删除条件的并逐次前移实现;二是间接删除算法即查找不符合删除条件的并保留下来,而保留的方法可以采用利用本数组和引入临时数组两种实现。
void delete(char s[],char ch) //直接删除法
{
int i=0,j=0;
while(s[i]!='\0')
{
if(s[i]==ch) //定位待删字符
{
j=i;
while(s[j+1]!='\0')
{
s[j]=s[j+1];
j++;
}
s[j]='\0';
i--;
}
i++;
}
}
int main()
{
char str[80];
char ch;
gets(str);
scanf("%c",&ch);
delete(str,ch);
printf("%s\n",str);
return 0;
}
void delete(char s[],char ch) //间接删除法
{
int i,k=0;
for(i=0;s[i]!='\0';i++)
{
if(s[i]!=ch)
s[k++]=s[i];
}
s[k]='\0';
}
int main()
{
char str[80];
char ch;
gets(str);
scanf("%c",&ch);
delete(str,ch);
printf("%s\n",str);
return 0;
}
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201225100813298.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NTYxOTIwOA==,size_16,color_FFFFFF,t_70#pic_center)
|