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

Chương trình C tách chuỗi thành các token (từ) bằng strtok

Giả sử chúng ta có một chuỗi s chứa một câu với nhiều từ. Nhiệm vụ là in từng từ trên một dòng riêng biệt. Để làm điều này, ta sử dụng hàm strtok() từ thư viện string.h. Hàm này nhận chuỗi và ký tự phân tách (delimiter). Ở đây delimiter là dấu cách " ".

Ví dụ, nếu s = "Let us see some string tokenizing fun", thì đầu ra:

Let
us
see
some
string
tokenizing
fun

Giải thuật

  • Gọi strtok(s, " ") để lấy token đầu tiên
  • Trong vòng lặp while(token != NULL): in token, sau đó gọi strtok(NULL, " ") để lấy token tiếp theo
  • Lặp cho đến khi strtok trả về NULL

Ví dụ minh họa

#include <stdio.h>
#include <string.h>

int main() {
    char s[] = "Let us see some string tokenizing fun";
    char* token = strtok(s, " ");
    while (token) {
        printf("%s\n", token);
        token = strtok(NULL, " ");
    }
    return 0;
}

Đầu vào

Let us see some string tokenizing fun

Đầu ra

Let
us
see
some
string
tokenizing
fun