🔧 文字列 ・ string.h ・ C89
strtok の使い方char *strtok(char *s, const char *delim);
文字列を区切り文字で分割する。内部に静的な状態を持ち、渡した文字列自体を書き換えながら破壊的にトークンを取り出すため、マルチスレッドや再入する用途では使えない。 複数の区切り文字を同時に指定でき、連続する区切り文字はまとめて1つの区切りとして扱われる。
#include <stdio.h>
#include <string.h>
int main(void) {
char s[] = "a,b,c";
char *tok = strtok(s, ",");
while (tok) {
puts(tok);
tok = strtok(NULL, ",");
}
return 0;
}
⚠️ 第1引数の文字列を直接書き換えるためリテラル文字列を渡すとクラッシュする。スレッドセーフ版が必要ならC11のstrtok_sを使う。
アプリの関数リファレンスで引く(無料・登録不要) 関数一覧へ
strtok と一緒に使う関数memcmp
memcpy
memmove
memset
memset_explicit
strcat
strchr
strcmp
strcoll
strcpy
strcspn
strdup
strerror
strlen
strncat
strncmp
もっと先へ:ポインタ・メモリ・ファイル入出力・セキュアコーディングを含む全26トラックと、段位検定・模試のフルセットは完全版に収録しています。