3.6 トークン化
RWCTokenizer クラスを使って、文字列を任意の空白類によって区切られたトークンに分解することができます。次に例を示します。
#include <rw/ctoken.h>
#include <rw/cstring.h>
#include <rw/rstream.h>
main(){
RWCString a("a string with five tokens");
RWCTokenizer next(a);
int i = 0;
// ヌル文字列が返されるまで継続する:
while( !next().isNull() ) i++;
cout << i << endl;
return 0;
}
出力:
5
このプログラムは、文字列中のトークン数を数えます。RWCTokenizer クラスの関数呼び出し演算子は、他の Tools.h++ の反復子と同様に、「次のトークンに進み、それを RWCSubString として返す」という意味に多重定義されています。それ以上トークンがない場合は、ヌルの部分文字列を返します。RWCSubString クラスは、部分文字列がヌルの文字列である場合に TRUE を返すメンバ関数 isNull() を持ちます。これを使って、ループから抜けることができます。RWCTokenizer については、『Tools.h++ Class Reference』を参照してください。