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