Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình C

Hàm strtok_r() trong ngôn ngữ C

strtok_r() là phiên bản re-entrant (có thể ngắt quãng an toàn) của strtok(). Khác biệt: có tham số thêm context (con trỏ con trỏ) để lưu trạng thái phân tích, cho phép an toàn với đa luồng (thread-safe).

Cú pháp

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

Ví dụ

#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;
    while (token != NULL) {
        strcpy(token_list[num_tokens], token);
        num_tokens++;
        token = strtok_r(NULL, " ", &context);
    }
    printf("Token List:\n");
    for (int i = 0; i < num_tokens; i++)
        printf("%s\n", token_list[i]);
    return 0;
}

Kết quả

Token List:
Hello
Tutorials
Point