Programming Place Plus トップページ – C言語編 – 標準ライブラリのリファレンス(名前順)
Programming Place Plus トップページ – C言語編 – 標準ライブラリのリファレンス(ヘッダ別)
概要 |
文字列を分割する。 |
|
ヘッダ |
||
形式 |
char* strtok(char* restrict str, const char* restrict set); |
|
引数 |
str |
対象の文字列。2回目以降の呼び出し時には、ヌルポインタを指定。 |
set |
区切り文字を書き並べた文字列。 |
|
戻り値 |
分割して得られた文字の並びを指すポインタを返す。文字の並びが得られなかった場合は、ヌルポインタが返される。 |
|
詳細 |
まず前提として、この関数は何度も繰り返し呼び出すような使い方をすることを理解しておくこと。 |
|
注意 |
関数内で、引数str
が指す文字列の内容は書き換えられることに注意(引数str には
const修飾子が付いていない)。具体的には、区切り文字の部分を ‘\0’
に書き換えている。こうして、戻り値として返されるポインタが、引数str
が指す文字列内のどれかの文字を指しており、かつ終端に ‘\0’
が適切に置かれていることが保証される。 |
|
使用例 |
実行結果:
|
|
関連 |
ワイド文字列版の wcstok関数がある。 |
|
解説章 |
逆引き「文字列を区切り文字ごとに分割する」 |
return 0;
を削除(C言語編全体でのコードの統一)’2018/4/22 解説中で C95 を(C89 に対して)特別扱いしないように修正。そもそもC言語編は C95ベースなので、余計な説明は省く。
’2018/4/20 「NULL」という表記を「ヌルポインタ」に修正。
’2018/4/17 全体的に文章を見直し修正。
’2018/1/22 新規作成。
Programming Place Plus のトップページへ