ホームページ  >  記事  >  バックエンド開発  >  C言語のstrtok()関数とは何ですか?

C言語のstrtok()関数とは何ですか?

王林
王林転載
2023-08-28 23:29:061561ブラウズ

C言語のstrtok()関数とは何ですか?

strtok() 関数は ヘッダー ファイルの一部です #include

strtok() 関数の構文−

char* strtok(char* string, const char* limiter);

文字列と区切り文字リミッターを入力します。 strtok() は、区切り文字に基づいて文字列をトークンに分割します。

strtok() から文字列のリストを取得することが期待できます。ただし、strtok(input, limiter) を呼び出した後は最初のトークンが返されるため、この関数は別の文字列を返します。

しかし、NULL が得られるまで、空の入力文字列に対して関数を何度も呼び出す必要があります。

通常、NULL が返されるまで strtok(NULL, delim) を呼び出し続けます。

次は、C プログラムの strtok() 関数です。例:

オンライン デモンストレーション

#include <stdio.h>
#include <string.h>
int main() {
   char input_string[] = "Hello Tutorials Point!";
   char token_list[20][20];
   char* token = strtok(input_string, " ");
   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(NULL, " "); // Get the next token. Notice that input=NULL now!
   }
   // 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!

入力文字列は「Hello Tutorials Point」で、スペースで区切ろうとします。

strtok(input, " ") を使用して最初のトークンを取得します。ここでは二重引用符が区切り文字であり、単一の文字列です。

その後、引き続き strtok(NULL, " ") を使用してタグを取得し、strtok() から NULL を取得するまでループします。

以上がC言語のstrtok()関数とは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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