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!

입력 문자열은 "Hello Tutorials Point"이며 공백으로 토큰화하려고 합니다.

strtok(input, " ")를 사용하여 첫 번째 토큰을 얻습니다. 여기서 큰따옴표는 구분 기호이며 단일 문자열입니다!

그 후 strtok(NULL, " ")를 사용하여 토큰을 계속 가져오고 strtok()에서 NULL을 얻을 때까지 반복합니다.