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