この関数は strtok() 関数に似ています。唯一の主な違いは、リエントラント関数と呼ばれる _r です。
リエントラント関数は、実行中に中断できる関数です。このタイプの関数は、実行を再開するために使用できます。
したがって、リエントラント関数はスレッドセーフです。つまり、損傷を引き起こすことなくスレッドによって安全に中断できることを意味します。
strtok_r() 関数には、context と呼ばれる追加のパラメーターがあります。このようにして、機能を正しい場所に復元できます。
strtok_r() 関数の構文 は次のとおりです。
#include <string.h> char *strtok_r(char *string, const char *limiter, char **context);
strtok_r() 関数を使用する C プログラムです。 -
ライブ デモンストレーション#include <stdio.h> #include <string.h> int main(){ char input_string[] = "Hello Tutorials Point"; char token_list[20][20]; char* context = NULL; char* token = strtok_r(input_string, " ", &context); int num_tokens = 0; // Index to token list. We will append to the list while (token != NULL){ strcpy(token_list[num_tokens], token); // Copy to token list num_tokens++; token = strtok_r(NULL, " ", &context); } // Print the list of tokens printf("Token List:</p><p>"); for (int i=0; i < num_tokens; i++) { printf("%s</p><p>", token_list[i]); } return 0; }
Token List: Hello Tutorials Point
以上がstrtok_r() 関数は C 言語の関数であり、その機能は文字列を一連の部分文字列に分割することです。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。