ホームページ  >  記事  >  バックエンド開発  >  strtok_r() 関数は C 言語の関数であり、その機能は文字列を一連の部分文字列に分割することです。

strtok_r() 関数は C 言語の関数であり、その機能は文字列を一連の部分文字列に分割することです。

王林
王林転載
2023-08-26 09:45:112080ブラウズ

strtok_r() 関数は C 言語の関数であり、その機能は文字列を一連の部分文字列に分割することです。

この関数は strtok() 関数に似ています。唯一の主な違いは、リエントラント関数と呼ばれる _r です。

リエントラント関数は、実行中に中断できる関数です。このタイプの関数は、実行を再開するために使用できます。

したがって、リエントラント関数はスレッドセーフです。つまり、損傷を引き起こすことなくスレッドによって安全に中断できることを意味します。

strtok_r() 関数には、context と呼ばれる追加のパラメーターがあります。このようにして、機能を正しい場所に復元できます。

strtok_r() 関数の構文 は次のとおりです。

#include <string.h>
char *strtok_r(char *string, const char *limiter, char **context);

Example

以下は、

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 サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。
前の記事:嵐の数字次の記事:嵐の数字