源碼實現 --> strdel

刪除字符串中某個字符strdel

 

函數

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

不是庫裏面的函數,本身實現的原型,刪除str中全部的chToDel字符。ios

 

源碼

//基本思想是:經過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
相關文章
相關標籤/搜索