首页 > 代码库 > [两个指针]删除字符串中指定的字符
[两个指针]删除字符串中指定的字符
删除字符串中指定的字符
输入 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‘;}///Processint 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;}
[两个指针]删除字符串中指定的字符
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。