バナーをクリックすれば目次に戻ります

Copyright 1999 Rogue Wave Software
Copyright 1999 Sun Microsystems, Inc.


RWWTokenizer

形式

#include <rw/wtoken.h>
RWWString str("a string of tokens", RWWString::ascii);
RWWTokenizer(str);  // 上記文字列をトークンに分解する

説明

このクラスは、任意の "空白" で区切られた、文字列をトークンに分解します。これは、文字列の反復子とも、また文字列をトークンに分解することによる副作用を持つ C ライブラリ関数 wstok() の代わりとも考えられます。

持続性

なし

#include <rw/wtoken.h>
#include <rw/rstream.h>

main(){
  RWWString a(L"Something is rotten in the state of Denmark");

  RWWTokenizer next(a);   // 文字列 a をトークンに分解する

  RWWString token;        // 各トークンを受け取る

  // NULL 文字列が返ってくるまで繰り返す
  while (!(token=next()).isNull())
    cout << token << "\n";
}

プログラム出力:

    Something
    is
    rotten
    in
    the
    state
    of
    Denmark

公開コンストラクタ

RWWTokenizer(const RWWString& s);

文字列 s をトークンに分解するトークナイザを作成します。

公開メンバー関数

RWWSubString
operator();

次のトークンに進み、それを部分文字列として返します。トークンは、L" \t\n\0" 内の 4 つのワイド文字 (空白、タブ、改行、ヌル) のどれかで区切られています。

RWWSubString
operator()(const wchar_t* s);

次のトークンに進み、それをワイド部分文字列として返します。トークンは、s 内のワイド文字列か、ワイドヌル文字で区切られています。

RWWSubString
operator()(const wchar_t* s,size_t num);

次のトークンに進み、それを部分文字列として返します。トークンは、s 内の最初の num ワイド文字のどれかで区切られています。バッファ s にはワイド文字列中のワイドヌル文字が含まれる場合があり、少なくとも num ワイド文字を含まなければなりません。s がワイドヌル文字を含まないかぎり、トークンはワイドヌル文字によっては区切られません。