strtok


目次に戻る


strtok関数はトークンを抽出する関数です。便利なのですが、一般にはあまり有名では 無い関数だと思います。扱いにクセがあるのですが、便利です。
 
トークンという言葉を使わないで説明すると、ユーザが指定した区切り文字によって 区切られている文字列を抽出する関数。という事になります。
つまり、「this is a test.」という文字列から「this」「is」「a」「test」という単語を抽出した い時に利用するのです。
char *text = "this is a test.";
char *token;

token = strtok( text , " ." );
while( token != NULL ){
    printf("%s\n",token);
    token = strtok( NULL , " ." );
}

上が"this is a test."から「this」「is」「a」「test」を抽出する例です。
 
便利なstrtok関数ですが、使うときに一つ注意があります。それは、ネストして使う事 ができないということです。
つまり、「Name=takonosuke,Home=tokyo,Phone=03-1234-5678」という文字列を「,」で 分割したものを「=」で分割して利用するという事は簡単にはできない。ということです。
そういうことがしたい場合はperl等を使いましょう。Cでそういった処理実装するのは面 倒くさいです。(仕事の関係上将来そういったライブラリをCで作る予定があるけど、C++ の方が楽です。絶対。)


目次に戻る