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

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

Hàm này tương tự như hàm strtok (). Sự khác biệt chính duy nhất là _r, được gọi là chức năng đăng nhập lại.

Một chức năng đăng nhập lại là một chức năng có thể bị gián đoạn trong quá trình thực thi. Loại hàm này có thể được sử dụng để tiếp tục thực thi.

Vì thực tế, các hàm đăng nhập lại là an toàn cho chuỗi, có nghĩa là chúng có thể bị gián đoạn bởi các chuỗi một cách an toàn mà không gây hại gì.

Hàm strtok_r () có một tham số phụ được gọi là ngữ cảnh. để chức năng đó có thể tiếp tục ở đúng vị trí.

Cú pháp cho hàm strtok_r () như sau:

#include <string.h>
char *strtok_r(char *string, const char *limiter, char **context);

Ví dụ

Sau đây là chương trình C để sử dụng hàm strtok_r () -

#include <stdio.h>
#include <string.h>
int main(){
   char input_string[] = "Hello Tutorials Point";
   char token_list[20][20];
   char* context = NULL;
   char* token = strtok_r(input_string, " ", &context);
   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_r(NULL, " ", &context);
   }
   // 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