关于字符串按段截取的函数,请高手指导如何优化以提高性能!
CString SectionCut(LPCTSTR lpCode, int& nLayer, LPCTSTR lpToKen)
{
if(!lpCode)
return "";
if(!lpToKen)
lpToKen = ",";
LPCTSTR lpOld;
int nLen, n = 0, nLenToken = strlen(lpToKen);
CString csTemp, csResult;
while(lpCode)
{
lpOld = lpCode;
nLen = strlen(lpCode);
lpCode = strstr(lpCode, lpToKen);
n++;
if(lpCode == NULL)
{
break;
}
lpCode = lpCode + nLenToken;
if(nLayer > 0 && n == nLayer)
{
break;
}
}
if(nLayer < 0)
{
nLayer = n;
}
else
{
if(lpCode)
{
csTemp= lpOld;
nLen = nLen - nLenToken - strlen(lpCode);
csResult = csTemp.Left(nLen);
}
else
{
csResult = lpOld;
}
}
return csResult;
}
这个函数实现的功能是:当nLayer>0时,从lpCode串中,以分隔符lpToKen截取,第nLayer段;当nLayer<0时,计算lpCode串共可以被lpToKen分隔成几段。
由于这个函数需要在循环中执行约2,000,000次以上,所以对性能的要求比较高,请高手指导如何优化以提高性能,谢谢!!