C语言编写函数字符串删除对应的字符(两种方法)

C语言编写函数字符串删除对应的字符(两种方法)

思路

用两个指针,一个用来遍历字符串进行比较,一个用来当下标赋值

代码实现

方法一

void del(char *str,char c)    //str指针指向str数组
{                            //c是要删除的字符
    char *p=str;             //指针p=str,指向str数组
    while(*str)                //循环,当str到'\0'结束
    {
        if(*str!=c)           //如果*str不是要删除的字符
            *p++=*str;       //就把*str赋值给*p,p指向下一个,
        str++;              //如果是要删除的字符,则不赋值
    }                        
    *p='\0';           //*str到\0说明字符串已经删完了,要最后加一个‘\0‘,
int main()
{
   char str[80],c;
   gets(str);    //输入字符串
   c=getchar();   //输入删除字符
   del(str,c);    //调用删除函数
   printf("%s",str);   //输出删除后的字符串
return 0;
}

方法一运行结果

在这里插入图片描述

方法二

思路:
  • 遍历判断是否一样,如果和删除的字符不一样,则存到另一个字符数组
  • 可以使用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);
}

方法二运行结果

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@赵士杰

如果对你有用,可以进行打赏,感

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值