strtok |
辞書:電算用語の基礎知識 プログラミング仕様編 (PTPROGS) |
読み:ストリ-トークン |
外語:strtok |
品詞:名詞 |
|
書式 |
#include <string.h>
char *strtok(char *str, const char *delim);
概要 |
標準Cライブラリに含まれる、文字列操作関数の一つ。
入力した文字列(C標準のASCIIZ形式)から、指定した文字をデリミター(区切り文字)で区切って返す。一回の呼び出して一つを返すが、関数自体がどこまで処理したかを覚えているため、連続して呼び出すと順次、2番目、3番目…の結果を返す。
特徴 |
問題点 |
この関数は構文解析などの手間を省いてくれるが、使用するかどうか自体を含めた検討が必要である。
これら問題点を許容した上で、再入不可能なこと、またはスレッドセーフではないことが問題となる場合は、strtok_r() 関数が利用できる。
定義 |
Bionicでは、次のように実装されている。
bionic/libc/include/string.h
extern char* strtok(char* __restrict, const char* __restrict);
bionic/libc/string/strtok.c
char * strtok(char *s, const char *delim) { static char *last; return strtok_r(s, delim, &last); }
状態を保持するための変数を静的変数で確保している。それ以外の処理自体は strtok_r と全く同じであることが分かる。
リンク |
通信用語の基礎知識検索システム WDIC Explorer Ver 7.04a (27-May-2022) Search System : Copyright © Mirai corporation Dictionary : Copyright © WDIC Creators club |