C言語ライブラリファンクションstrtok()の使い方
文字列をいくつかのサブ文字列に分割するために C 言語のライブラリ関数 strtok() は使用されています。その使用手順は次のとおりです。
- まず、ヘッダファイルをインクルードする必要があります。
- 分割後にサブストリングを受け取るキャラポインタ変数を作成します。
- strtok() 関数による分割
- 最初の strtok() 呼び出しでは、分割の対象となる文字列を最初のパラメータとして渡す必要があります。その後の呼び出しでは、NULL を最初のパラメーターとして渡します。
- strtok()関数を毎回呼び出すとその戻り値であるポインタがサブストリングを指すようになり、そのポインタからサブストリングにアクセスできる。
- strtok()関数を呼び出してNULLが返るまで処理を繰り返すことで、すべてのサブ文字列を分割します。
以下は、strtok()関数の使い方を示すサンプルコードです。
#include <stdio.h>
#include <string.h>
int main() {
char str[] = "This is a sample string.";
const char delim[] = " ";
// 第一次调用strtok()函数
char *token = strtok(str, delim);
// 循环调用strtok()函数处理剩余的子字符串
while (token != NULL) {
printf("%s\n", token);
// 后续调用strtok()函数
token = strtok(NULL, delim);
}
return 0;
}
上記コードは文字列 “str” を空白を区切り文字として分割し、各サブ文字列を出力します。出力結果は以下のようになります。
This
is
a
sample
string.
strtok()関数は元の文字列を変更し、区切り文字を空文字’\0’に置き換えることに注意してください。元の文字列を変更したくない場合は、strtok_r()関数を使用できます。