Hàm mbtowc() trong C (chi tiết nhất)




Hàm mbtowc() trong C

Hàm int mbtowc(wchar_t *pwc, const char *str, n) chuyển đổi một dãy nhiều byte thành một wide char.

Khai báo hàm mbtowc() trong C

Dưới đây là phần khai báo cho mbtowc() trong C:

int mbtowc(whcar_t *pwc, const char *str, size_t n)

Tham số

  • pwc: Đây là con trỏ tới một đối tượng của kiểu wchar_t.

  • str: Đây là con trỏ tới byte đầu tiên của một multi-byte char.

  • n: Đây là số byte tối đa để được kiểm tra cho độ dài ký tự.

Trả về giá trị

  • Nếu str không là NULL, thì hàm mbtowc() trả về số byte đã dùng bắt đầu tại str, hoặc trả về 0 nếu str trỏ tới một null byte, hoặc trả về -1 nếu có lỗi.

  • Nếu str là NULL, thì hàm mbtowc() trả về giá trị khác không nếu mã hóa là có trạng thái hoặc trả về 0 nếu là không có trạng thái.

Ví dụ

Chương trình C sau minh họa cách sử dụng của mbtowc() trong C:

#include 
#include 
#include int main()
{
   char *str = "Hoc C co ban va nang cao tai VietJack !!!";
   wchar_t mb[100];
   int len;
   
   len = mblen(NULL, MB_CUR_MAX);    mbtowc(mb, str, len*strlen(str) );
   
   wprintf(L"%ls \n", mb );   
   
   return(0);
}

Biên dịch chương trình C trên trong Dev-C sẽ không cho bạn kết quả nào, và bạn sẽ thấy một dòng cảnh báo nói rằng việc chuyển đổi từ hằng chuỗi thành char* là đã cũ, và không nên sử dụng:

Hàm mbtowc trong C

Các bài Thư viện C phổ biến khác tại VietJack:


stdlib-h-trong-c.jsp