Computer >> Máy Tính >  >> Lập trình >> lập trình C

Hàm strtok () trong ngôn ngữ C là gì?

Hàm strtok () là một phần của tệp tiêu đề #include

Cú pháp của hàm strtok () như sau -

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

Chuỗi chuỗi đầu vào và bộ giới hạn ký tự dấu phân cách. strtok () sẽ chia chuỗi thành các mã thông báo dựa trên ký tự được phân tách.

Chúng ta có thể mong đợi một danh sách các chuỗi từ strtok (). Tuy nhiên, hàm trả về một chuỗi đơn vì sau khi gọi strtok (đầu vào, bộ giới hạn), nó sẽ trả về mã thông báo đầu tiên.

Nhưng chúng ta phải tiếp tục gọi hàm lặp đi lặp lại trên chuỗi đầu vào NULL, cho đến khi chúng ta nhận được NULL! Nói chung, chúng ta thường tiếp tục gọi hàm strtok (NULL, delim) cho đến khi nó trả về NULL.

Ví dụ

Sau đây là chương trình C cho hàm 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:\n");
   for (int i=0; i < num_tokens; i++) {
      printf("%s\n", token_list[i]);
   }
   return 0;
}

Đầu ra

Khi chương trình trên được thực thi, nó tạo ra kết quả sau -

Token List:
Hello
Tutorials
Point!

Chuỗi đầu vào là “Hello Tutorials Point” và chúng tôi đang cố gắng mã hóa chuỗi này bằng dấu cách.

Chúng tôi nhận được mã thông báo đầu tiên bằng cách sử dụng strtok (đầu vào, ""). Ở đây dấu ngoặc kép là dấu phân cách và là một chuỗi ký tự đơn!

Sau đó, chúng tôi tiếp tục nhận mã thông báo bằng cách sử dụng strtok (NULL, "") và lặp lại cho đến khi chúng tôi nhận được NULL từ strtok ().