Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình C

Hàm mbtowc trong C

Hàm thư viện C int mbtowc(wchar_t *pwc, const char *str, size_t n) chuyển đổi dãy multi-byte sang ký tự rộng (wide character).

Khai báo:

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

Tham số:

  • pwc: con trỏ tới đối tượng kiểu wchar_t.
  • str: con trỏ tới byte đầu của ký tự multi-byte.
  • n: số byte tối đa kiểm tra độ dài ký tự.

Giá trị trả về:

  • Nếu str không NULL: trả về số byte tiêu thụ từ str, hoặc 0 nếu trỏ tới null byte, hoặc -1 khi thất bại.
  • Nếu str là NULL: trả về non-zero nếu encoding có trạng thái dịch chuyển phức tạp, 0 nếu encoding không trạng thái.

Ví dụ

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main() {
    char *str = "This is tutorialspoint.com";
    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;
}

Kết quả

???