次の方法で共有


CStringT::Tokenize

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

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

パラメーター

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

  • iStart
    調査を開始する始まるインデックス。

戻り値

現在のトークン値を含む CStringT のオブジェクト。

解説

Tokenize 関数はターゲットの文字列の次のトークンを検索します。pszTokens の文字セットは検索するトークンの可能な区切り記号を指定します。Tokenize を呼び出すたびに関数は iStartの区切り記号と応答の先頭でスキップ次の区切り記号文字までの文字列である現在のトークンを含む CStringT オブジェクトの開始します。iStart の値は文字列の終端に到達すると終了の区切り記号文字に続く位置または -1 に更新されます。詳細に iStart トークンは、を使用して Tokenizeに一連の呼び出しによって対象の文字列内の残りの文字列の次のトークンがどこに読み込まれるようになるかを把握するには、取り出すことができます。これ以上のトークンがない場合、関数は空の文字列を返し、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

必要条件

ヘッダー: cstringt.h

参照

関連項目

CStringT クラス