分离连续的字符串和连续的数字串
bool SeperateContinuousStr(char* p,QMultiMap<int,char*>& mapResult)
{
//1、参数合法性检查
if(p ==NULL)
return false;
int nCnt=0;
int nCnt2=0;
while( *p !='\0')
{
//查找数字串
if('0'<=*p && *p<='9')
++nCnt;
else{
if(nCnt>0)
{
mapResult.insert(nCnt,p-nCnt);
nCnt=0;
}
}
//查找字母串
if(('a'<=*p && *p<='z') || ('A'<= *p && *p<='Z'))
++nCnt2;
else {
if(nCnt2>0)
{
mapResult.insert(nCnt2,p-nCnt2);
nCnt2=0;
}
}
++p;
//p位置可能已经在结束符 、下次循环条件会结束,因此此处需把上次位存的字符串补入到结果中
if(*p == '\0')
{
if(nCnt>0)
mapResult.insert(nCnt,p-nCnt);
if(nCnt2>0)
mapResult.insert(nCnt2,p-nCnt2);
}
}
return mapResult.size()>0;
}
C++笔记:分离连续字符串、连续数字串
最新推荐文章于 2022-03-15 19:17:55 发布