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

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

Hàm wcstok () được định nghĩa trong tệp tiêu đề.

nguyên mẫu wcstok ()

 wchar_t * wcstok (wchar_t * str, const wchar_t * delim, wchar_t ** ptr);

Hàm wcstok () nhận ba đối số: str, delim và ptr. Hàm này tìm mã thông báo trong chuỗi rộng được trỏ tới bởi str. 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 rộng. Có hai trường hợp:

  1. Nếu str không phải là NULL:
    Một lệnh gọi đến wcstok () được coi là lệnh gọi đầu tiên cho chuỗi rộng đó. Hàm tìm kiếm ký tự rộng đầu tiên không có trong dấu phân cách. Nếu không tìm thấy ký tự rộng như vậy, thì chuỗi rộng 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ự rộng như vậy được tìm thấy, từ đó hàm tìm kiếm ký tự rộng 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 một dấu phân cách được tìm thấy, nó sẽ được thay thế bằng L ' 0' và con trỏ đến ký tự sau được lưu trong * ptr. Cuối cùng, hàm trả về con trỏ đến đầu mã thông báo.
  2. Nếu str là NULL:
    Cuộc gọi được coi là các lệnh gọi tiếp theo tới wcstok và hàm tiếp tục từ vị trí nó đã rời khỏi trong lần gọi trước với cùng một * ptr.

wcstok () Tham số

  • str: Con trỏ đến chuỗi rộng được kết thúc bằng null để mã hóa.
  • delim: Con trỏ đến chuỗi rộng được kết thúc bằng rỗng có chứa các dấu phân cách.
  • ptr: Con trỏ trỏ tới một ký tự rộng được wcstok sử dụng để lưu trữ trạng thái bên trong của nó.

wcstok () Giá trị trả về

  • Hàm wcstok () trả về con trỏ đến đầu mã thông báo tiếp theo nếu có
  • Nó trả về NULL nếu không tìm thấy mã thông báo nào nữa.

Ví dụ: Hàm wcstok () hoạt động như thế nào?

 #include #include #include using namespace std; int main() ( setlocale(LC_ALL, "en_US.utf8"); wchar_t str() = L"parrot,owl,sparrow,pigeon,crow"; wchar_t delim() = L"u002c";// unicode for comma wchar_t *ptr; wcout << L"The tokens are:" << endl; wchar_t *token = wcstok(str,delim,&ptr); while (token) ( wcout << token << endl; token = wcstok(NULL,delim,&ptr); ) 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...