共用方式為


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

請參閱

參考

CStringT Class