Cプログラミング
 Computer >> コンピューター >  >> プログラミング >> Cプログラミング

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


strtok()関数は、ヘッダーファイル#include

の一部です。

strtok()関数の構文は次のとおりです-

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

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

strtok()から文字列のリストを期待できます。ただし、strtok(input、limiter)を呼び出した後、最初のトークンを返すため、関数は単一の文字列を返します。

ただし、NULLになるまで、NULL入力文字列で関数を何度も呼び出し続ける必要があります。通常、関数がNULLを返すまで、strtok(NULL、delim)を呼び出し続けていました。

以下は、 strtok()関数のCプログラムです。 −

#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:\n");
   for (int i=0; i < num_tokens; i++) {
      printf("%s\n", token_list[i]);
   }
   return 0;
}

出力

上記のプログラムを実行すると、次の結果が得られます-

Token List:
Hello
Tutorials
Point!

入力文字列は「HelloTutorialsPoint」であり、スペースでトークン化しようとしています。

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

その後、strtok(NULL、 "")を使用してトークンを取得し続け、strtok()からNULLを取得するまでループします。


  1. C言語のstrcmp()関数とは何ですか?

    Cライブラリ関数intstrcmp(const char * str1、const char * str2) str1が指す文字列を比較します str2が指す文字列へ 。 文字の配列は文字列と呼ばれます。 宣言 以下は配列の宣言です- char stringname [size]; 例-charstring[50];長さ50文字の文字列 初期化 単一文字定数の使用- char string[10] = { ‘H’, ‘e’, ‘l’, ‘l’, ‘o’ ,&ls

  2. C言語のstrcpy()関数とは何ですか?

    Cライブラリ関数char* strcpy(char * dest、const char * src) srcが指す文字列をコピーします 宛先へ 。 文字の配列は文字列と呼ばれます。 宣言 以下は配列の宣言です char stringname [size]; 例-charstring[50];長さ50文字の文字列 初期化 単一文字定数の使用- char string[10] = { ‘H’, ‘e’, ‘l’, ‘l’, ‘o’ ,‘\0’}