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