C ++ strtok () - Thư viện chuẩn C ++

Hàm strtok () trong C ++ trả về mã thông báo tiếp theo trong chuỗi byte kết thúc bằng null.

nguyên mẫu strtok ()

 char * strtok (char * str, const char * delim);

Các strtok()chức năng hai đối số: str và dấu phân cách. Hàm này tìm mã thông báo trong chuỗi được trỏ tới strtok. Dấu phân cách con trỏ trỏ đến các ký tự phân cách.

Hàm này có thể được gọi nhiều lần để lấy mã thông báo từ cùng một chuỗi. Có hai trường hợp:

  • Nếu str không phải là NULL:
    Một lệnh gọi tới strtok () được coi là lệnh gọi đầu tiên cho chuỗi đó. Hàm tìm kiếm ký tự đầu tiên không có trong dấu phân cách. Nếu không tìm thấy ký tự nào như vậy, thì chuỗi không chứa bất kỳ mã thông báo nào. Vì vậy, một con trỏ null được trả về. Nếu ký tự như vậy được tìm thấy, từ đó hàm sẽ tìm kiếm một ký tự có trong dấu phân cách. Nếu không tìm thấy dấu phân tách, str chỉ có một mã thông báo. Nếu tìm thấy dấu phân tách, nó sẽ được thay thế bằng ' 0' và con trỏ đến ký tự sau được lưu trữ ở vị trí tĩnh cho các lần gọi tiếp theo. Cuối cùng, hàm trả về con trỏ đến đầu mã thông báo.
  • Nếu str là NULL:
    Cuộc gọi được coi là lệnh gọi tiếp theo tới strtok và hàm tiếp tục từ nơi nó đã rời khỏi trong lần gọi trước.

Nó được định nghĩa trong tệp tiêu đề "> tệp tiêu đề.

tham số strtok ()

  • str: Con trỏ đến chuỗi byte kết thúc null để mã hóa.
  • delim: Con trỏ đến chuỗi byte kết thúc rỗng có chứa các dấu phân cách.

strtok () Giá trị trả về

Các strtok()hàm trả về con trỏ đến thẻ tiếp theo nếu có bất kỳ, hoặc nó trả về NULL nếu không tokens được tìm thấy.

Ví dụ: Cách hoạt động của hàm strtok ()

 #include #include using namespace std; int main() ( char str() = "parrot,owl,sparrow,pigeon,crow"; char delim() = ","; cout << "The tokens are:" << endl; char *token = strtok(str,delim); while (token) ( cout << token << endl; token = strtok(NULL,delim); ) return 0; )

Khi bạn chạy chương trình, đầu ra sẽ là:

 Các mã thông báo là: con vẹt cú chim sẻ chim bồ câu quạ

thú vị bài viết...