源码实现 --> strdel

本文介绍了一个自定义的C语言函数strDel,该函数用于从输入字符串中删除所有指定字符。通过双指针技巧,strDel函数实现了高效地在原字符串上进行修改,避免了额外的空间开销。文章还提供了一个简单的测试示例,展示了如何使用该函数。

删除字符串中某个字符strdel

 

函数

char *strDel(char* str,const char chToDel)

不是库里面的函数,自己实现的原型,删除str中所有的chToDel字符。

 

源码

//基本思想是:通过pRefStr2遍历str,找出不等于chToDel的值,将其赋值与pRefStr2
char *strDel(char* str,char chToDel)
{
    
    assert((str!=NULL)&& (chToDel!=NULL));
   char *pRefStr1, *pRefStr2;
    pRefStr1=pRefStr2=str;//将两个指针变量同时指向str,后续改变指针变量的值相当于改变str的值

    while(*pRefStr2++){
        if(*pRefStr2!=chToDel) 
        {
            *pRefStr1++=*pRefStr2;//找到不等于chToDel的值,并将其赋值与pRefStr1,再将pRefStr1的指针向后移动;
        }
     }
    *pRefStr1='\0';
    return str;
}

关键点: 注意C语言程序的顺序执行,以及指针。

 

测试

#include<iostream.h>
#include<assert.h>
void main()
{
    char destStr[10]="aadddfcca";
    char delStr='a';
    strDel(destStr,delStr);
    cout<<destStr<<endl;
}

输出结果:

dddfcc

 

转载于:https://www.cnblogs.com/jeakeven/p/5855530.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值