300分,救命!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
typedef deque<string> strings;
函数:
_declspec(dllexport) strings StringTokenize(const char *strSrc, char cToken)
{
DWORD dwCount(0);
StrSerial strTrunc;
strings Strs;
const char *szRef = strSrc;
const char *szWalk = szRef;
if(IS_STRING_EMPTY(szRef))
return Strs;
while(true)
{
dwCount++;
if((*szWalk)==cToken)
{
strTrunc.SetStr(szRef, dwCount-1);
if(!strTrunc.StrContent.empty())
Strs.push_back(strTrunc.StrContent);
dwCount = 0;
szRef = szWalk + 1;
}
else if(*szWalk=='\0')
{
strTrunc.SetStr(szRef, dwCount-1);
if(!strTrunc.StrContent.empty())
Strs.push_back(strTrunc.StrContent);
dwCount = 0;
break;
}
szWalk++;
}
return Strs;
}
调用:
void main(int argc, char *argv[], char *envp[])
{
strings strs = StringTokenize("dlalfdsafkdlsfkdsl", 'f');
strings::iterator iter;
cout << "dlalfdsafkdlsfkdsl" << endl;
for(iter=strs.begin(); iter!=strs.end(); iter++)
{
cout << (*iter).c_str() << endl;
}
return;
}
错误:
main函数里的strs析构时发生一个ASSERTION失败_CrtIsValidePointer(pUserData)