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

Hàm wcrtomb () trong C ++ chuyển đổi một ký tự rộng thành biểu diễn đa byte hẹp của nó.

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

nguyên mẫu wcrtomb ()

 size_t wcrtomb (char * s, wchar_t wc, mbstate_t * ps);

Hàm wcrtomb () chuyển đổi ký tự rộng được đại diện bởi wc thành ký tự đa byte hẹp và được lưu trữ trong địa chỉ được trỏ tới bởi s.

  • Nếu s không phải là một con trỏ null, hàm wcrtomb () xác định số byte tối đa cần thiết để lưu biểu diễn multibyte của wc và lưu nó vào vị trí bộ nhớ được trỏ tới bởi s. Có thể ghi tối đa MB_CUR_MAX byte. Giá trị của ps được cập nhật theo yêu cầu.
  • Nếu s là một con trỏ null, lệnh gọi tương đương wcrtomb(buf, L'', ps)với một số buf đệm nội bộ.
  • Nếu wc == L'', một byte rỗng được lưu trữ.

wcrtomb () Tham số

  • s: Con trỏ tới mảng ký tự multibyte để lưu kết quả.
  • wc: Ký tự rộng để chuyển đổi.
  • ps: Con trỏ đến trạng thái chuyển đổi được sử dụng khi diễn giải chuỗi multibyte

wcrtomb () Giá trị trả về

  • Khi thành công, hàm wcrtomb () trả về số byte được ghi vào mảng ký tự có phần tử đầu tiên được trỏ đến bởi s.
  • Khi bị lỗi (nghĩa là wc không phải là một ký tự rộng hợp lệ), nó trả về -1, errno được đặt thành EILSEQ và để * ps ở trạng thái không xác định.

Ví dụ: Hàm wcrtomb () 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"uu00c6u00f5u01b5"; char s(16); int retVal; mbstate_t ps = mbstate_t(); for (int i=0; i 

When you run the program, the output will be:

 Size of u is 1 bytes Size of Æ is 2 bytes Size of õ is 2 bytes Size of Ƶ is 2 bytes

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