CStringT::Tokenize
查找在目标字符串中的下一个标记
CStringT Tokenize(
PCXSTR pszTokens,
int& iStart
) const;
参数
pszTokens
包含标记分隔符的字符串。这些分隔符顺序并不重要。iStart
开始搜索的从零开始的索引。
返回值
包含当前标记值的 CStringT 对象。
备注
Tokenize 功能来查找在目标字符串中的下一个标记。将 pszTokens 的字符指定将找到的标记可能的分隔符。在每次调用 Tokenize 函数开始对 iStart,导致分隔符的"跳过",并返回包含当前标记的 CStringT 对象,是字符串到下分隔符。如果该字符串的末尾已到达,更新 iStart 的值为后面的位置关闭分隔符的或-1。多个标记中打开目标字符串的其余部分由一系列调用 Tokenize,使用 iStart 记录在字符串下一个标记要读取的位置。当没有更多的标记函数返回一个空字符串,并 iStart 将设置为-1。
不同CRT,如 strtok_s, _strtok_s_l, wcstok_s, _wcstok_s_l, _mbstok_s, _mbstok_s_l,Tokenize 不修改目标字符串,tokenize功能。
示例
// typedef CStringT<TCHAR, StrTraitATL<TCHAR, ChTraitsCRT<TCHAR>>> CAtlString;
CAtlString str(_T("%First Second#Third"));
CAtlString resToken;
int curPos = 0;
resToken= str.Tokenize(_T("% #"),curPos);
while (resToken != _T(""))
{
_tprintf_s(_T("Resulting token: %s\n"), resToken);
resToken = str.Tokenize(_T("% #"), curPos);
};
备注
从此示例的输出如下所示:
Resulting Token: First
Resulting Token: Second
Resulting Token: Third
要求
Header: cstringt.h