strtok() 함수는
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을 얻을 때까지 반복합니다.