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 не изменяет строку целевого объекта.
Пример
// 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