EN JA
WCSTOK(3)
WCSTOK(3) FreeBSD Library Functions Manual WCSTOK(3)

名称

wcstokワイド文字列をトークンに分割する

ライブラリ

Standard C Library (libc, -lc)

書式

#include < wchar.h>

wchar_t *
wcstok( wchar_t * restrict str, const wchar_t * restrict sep, wchar_t ** restrict last);

解説

wcstok() 関数は、ヌル文字で終了するワイド文字列 str を連続するトークンに分割するために使用されます。これらのトークンは、少なくとも sep 中の文字の 1 つによって文字列に分離されます。 wcstok() が呼び出される最初に str は、指定されるべきです。同じ文字列からさらにトークンを取得したいならば、続く呼び出しでは、代わりに NULL ポインタを渡すべきです。セパレータ (分離記号) 文字列、 sep は、毎回供給しなければなりません。そして呼び出しの間で変更することもできます。コンテキストポインタ last は、呼び出し毎に提供しなければなりません。

wcstok() 関数は、 strtok_r() 関数のワイド文字に対応する物です。

戻り値

wcstok() 関数は、そのトークン自体をヌルのワイド文字 (L'\0') で置き換えた後、文字列中のそれぞれの次のトークンの先頭へのポインタを返します。トークンがなくなると、NULL ポインタを返します。

使用例

次のコード断片は、 ASCII のスペース、タブ、改行文字でワイド文字列を分割し、標準出力にトークンを書き込みます:

const wchar_t *seps = L"\t\n"; 
wchar_t *last, *tok, text[] = L"\none\ttwo\t\tthree  \n"; 
 
for (tok = wcstok(text, seps, &last); tok != NULL; 
    tok = wcstok(NULL, seps, &last)) 
 wprintf(L"%ls\n", tok);

互換性

wcstok() のいくつかの初期の実装では、コンテキストポインタ引数 last を省略して、 strtok() が行なうように静的変数に呼び出し間の状態を保持するものがあります。

規格

wcstok() 関数は、 ISO/IEC 9899:1999 (“ISO C99”) に適合しています。
October 3, 2002 FreeBSD