删除字符串中指定的字符
输入 char *a = "abc123";
char *del = "a13";
利用两个字符指针的方式,pslow,pfast;
char *pslow,*pfast;
两个指针一开始都指向字符串的开始位置;
pfast开始遍历字符串,
if(*pfast==指定字符){////这里疑惑的地方就是,pslow什么时候向前滑行
将pfast所指字符,移到pslow的位置(就是赋值操作,*pslow = *fast)
pslow++;
pfast++;
}else{
pfast++;
}
///==================
#include <iostream> #include <stdio.h> #include <cstdio> #include <string> #include <string.h> #include <vector> #include <map> #include <unordered_map> #include <unordered_set> #include <algorithm> #include <list> #include <limits.h> #include <set> //#include "xiaozhao.h" #include <numeric> #include <bitset> #include <iomanip> #include <queue> #include <math.h> #include <sstream> #include <stdio.h> #include <list> #include <stack> using namespace std; char TheArray[256]; void InitTheArray(const char* p){ while('\0'!=*p){ TheArray[*p++] = 1; } } void ProcessTheString(char *szDestination){ char *pFast; char *pSlow; pFast = pSlow = szDestination; while('\0'!=*pFast){ if(0==TheArray[*pFast]){ *pSlow=*pFast; pSlow++; pFast++; }else{ pFast++; } }///while *pSlow = '\0'; }///Process int main() { //Cxiao c; //c.test(); //freopen("input.txt", "r", stdin); char szDes[] = "they are students."; char szFind[] = "aeiou"; InitTheArray(szFind); ProcessTheString(szDes); printf("%s\n",szDes); return 0; }