char* _tcstok( char* strToken, const char* strDelimit );
该函数是可以从一个CString串中,根据提供的分隔符,截取并返回一个一个的Token;
参数:
strToken: 是一个要分析的串;这个串中包含一个或者多个Token,当然还有分隔符,也有可能有其他的字符;
strToken: 是一个要分析的串;这个串中包含一个或者多个Token,当然还有分隔符,也有可能有其他的字符;
strDelimit: 是分隔符;根据分隔符把strToken中的Token分析出来;
说明:
// Get the first value
pTChar = _tcstok( pstr, _T("; ,") );
nValue = _ttoi( pTChar );
vValue.push_back( nValue );
nIndex++;
// Loop for the other value
while (( pTChar != NULL ) && ( nIndex < 4 ))
{
pTChar = _tcstok( NULL, _T("; ,") );
nValue = _ttoi( pTChar );
vValue.push_back( nValue );
nIndex++;
}
第一次调用的时候,函数会忽略出现在strToken串开始的分隔符,返回找到的Token指针,用空字符(NULL character )替换掉已经查找到的部分(包括分隔符)并把“新”串保存到一个Static变量中(系统来完成);
如果下次调用时第一个参数为NULL的话,函数从Static变量中取出串,根据分隔符得到并返回新Token,用空字符(NULL character )替换掉已经查找到的部分(包括分隔符)并重新保存“新”串;
如此循环,直到循环条件结束。
可以编写一个小程序,在Debug状态下进行单步跟踪,查看其调用过程