C语言编写函数字符串删除对应的字符(两种方法)
思路
- 看了网上很多博客我发现当出现指定字符重复出现时,不会全部删除
- 这是一种笨方法,
- 有好的方法请在下方回复谢谢
代码实现
方法一
void del(char *p,char c)
{
char *q,*t;
while(*p)
{
if(*p==c)
{
for(t=p;*(t+1)!='\0';t++)
*t=*(t+1);
*t='\0';
}
p++;
}
}
int main()
{
int i;
char a[100];
gets(a);
char b;
scanf("%c",&b);
for(i=0;i<80;i++)
del(a,b);
puts(a);
}
方法一运行结果
方法二
思路:
- 遍历判断是否一样,如果和删除的字符不一样,则存到另一个字符数组
- 可以使用strcmp函数改变原数组的值
代码实现
int main()
{
char a[80],b[80],c;
int i,j;
gets(a);
c=getchar();
for(i=0,j=0;i<strlen(a);i++)
if(a[i]!=c){
b[j]=a[i];
j++;
}
b[j]='\0';
strcpy(a,b);
puts(a);
}
方法二运行结果