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

Hàm mbtowc () trong C ++ chuyển đổi một ký tự multibyte thành một ký tự rộng.

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

nguyên mẫu mbtowc ()

 int mbtowc (wchar_t * pwc, const char * pmb, size_t max);

Hàm mbtowc () nhận ba đối số và trả về một giá trị nguyên. Hàm này chuyển đổi ký tự multibyte được trỏ bởi pmb thành một ký tự rộng (giá trị của kiểu wchar_t) và được lưu trữ tại vị trí bộ nhớ được trỏ bởi pwc.

Nếu pmb là một con trỏ null, một lệnh gọi tới mbtowc () sẽ đặt lại trạng thái chuyển đổi toàn cục và xác định xem các chuỗi dịch chuyển có được sử dụng hay không.

mbtowc () Tham số

  • pwc: Con trỏ đến ký tự rộng kết quả
  • pmb: Con trỏ đến ký tự nhiều byte được chuyển đổi thành ký tự rộng
  • max: Kích thước tối đa tính bằng byte pmb để xem xét cho ký tự nhiều byte.

mbtowc () Giá trị trả về

Nếu pmb không phải là con trỏ null, mbtowc () trả về:

  • số byte có trong ký tự multibyte được trỏ bởi pmb.
  • -1 nếu byte đầu tiên được trỏ bởi pmb không tạo thành ký tự multibyte hợp lệ.
  • 0 nếu pmb trỏ đến ký tự null kết thúc tức là ' 0'.

Nếu pmb là một con trỏ null, hãy đặt lại trạng thái chuyển đổi bên trong của nó để biểu thị trạng thái dịch chuyển ban đầu và trả về:

  • 0 nếu mã hóa multibyte hiện tại không phụ thuộc vào trạng thái (không sử dụng chuỗi dịch chuyển)
  • một giá trị khác 0 nếu mã hóa multibyte hiện tại phụ thuộc vào trạng thái (sử dụng chuỗi dịch chuyển).

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

 #include #include #include using namespace std; int main() ( char pmb() = "Welcome to Programiz.com"; wchar_t pwc(100); int len, ret_val; /* resets internal conversion state */ mbtowc (NULL, NULL, 0); len = strlen(pmb); ret_val = mbtowc(pwc, pmb, strlen(pmb)); cout << "Return Value = " << ret_val << endl; wcout << "Wide character string: " << pwc; return(0); )

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

 Giá trị trả về = 1 Chuỗi ký tự rộng: W @

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