本文整理汇总了C++中CMyString::Erase方法的典型用法代码示例。如果您正苦于以下问题:C++ CMyString::Erase方法的具体用法?C++ CMyString::Erase怎么用?C++ CMyString::Erase使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CMyString
的用法示例。
在下文中一共展示了CMyString::Erase方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: ReBuildUrlIfNeed
void SpiderThread::ReBuildUrlIfNeed(CMyString &parentUrl,CMyString &url,CMyString &host)
{
bool needRebuild=false;
int len=url.GetStrLen();
host =CUrl::GetUrlHost(parentUrl);
if(len>=4)
{
if(url[0]=='w'&&url[1]=='w'&&url[2]=='w'&&url[3]=='.')
{
}
else if(url[0]=='b'&&url[1]=='b'&&url[2]=='s'&&url[3]=='.')
{
}
else if(url[0]=='h'&&url[1]=='t'&&url[2]=='t'&&url[3]=='p')
{
if(len>=5&&url[4]==':')
{
}
else
{
needRebuild=true;
}
}
else
{
if(len>0&&url[0]=='.')
{
needRebuild=true;
}
else if(len>=3&&url[0]=='/'&&url[1]=='.'&&url[2]=='.')
{
needRebuild=true;
len--;
url.Erase(0,1);
}
else
{
int status=0;
int i=0;
for(;i<len;i++)
{
if(!status&&url[i]=='.')
{
status=1;
}
else if(status==1&&url[i]=='.')
{
break;
}
else if(status==1&&url[i]=='/')
{
break;
}
}
if(i>=len)
needRebuild=true;
}
}
}
else
{
needRebuild=true;
}
if(needRebuild)
{
CUrl lUrl(parentUrl);
CMyString path=lUrl.GetUrlHost()+"/"+lUrl.GetUrlPath();
int count=0;
while(1)
{
if(url[0]=='.'&&url[1]=='.'&&url[2]=='/')
{
url.Erase(0,3);
count++;
}
else
{
break;
}
}
while(count)
{
count--;
char *p=path.GetBuffer()+path.GetStrLen()-1;
if(*p=='/')
{
path.EraseFromRight(1);
p--;
}
char *e=p;
while(p!=path.GetBuffer()&&*p!='/')p--;
if(*p!='/')
{
_asm int 3;
}
else
{
if(count)
//.........这里部分代码省略.........