CStringT::Tokenize

更新 : 2007 年 11 月

対象文字列で次のトークンを検索します。

CStringT Tokenize(
   PCXSTR pszTokens,
   int& iStart
) const;

パラメータ

  • pszTokens
    トークン区切り記号を含んでいる文字列。これらの区切り記号の順序は重要ではありません。

  • iStart
    検索を開始する位置を示す、0 から始まるインデックス番号。

戻り値

現在のトークン値を保持している CStringT オブジェクトを返します。

解説

Tokenize 関数は、対象文字列で次のトークンを検索します。pszTokens 内の文字セットは、検索対象のトークンで見つかる可能性のある区切り文字を指定します。Tokenize の呼び出しごとに、関数は iStart から開始し、先頭の区切り記号を読み飛ばし、現在のトークンを含む CStringT オブジェクトを返します。このトークンは、最大で次の区切り文字までの文字列です。iStart の値は、終端の区切り文字の次の位置に更新されます。文字列の終端に達した場合は -1 に更新されます。Tokenize を連続して呼び出し、iStart を使用して次のトークンを読み取る文字列の位置を追跡すことで、残りの対象文字列から複数のトークンが取り出されます。トークンがなくなった場合、関数は空の文字列を返し、iStart は -1 に設定されます。

strtok_s、_strtok_s_l、wcstok_s、_wcstok_s_l、_mbstok_s、_mbstok_s_l などの CRT のトークン化関数とは異なり、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

必要条件

ヘッダー : cstringt.h

参照

参照

CStringT クラス

その他の技術情報

CStringT のメンバ