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

Hàm c32rtomb() trong C/C++

Trong C++, chúng ta có thể sử dụng biểu diễn ký tự 32-bit. Hàm c32rtomb() dùng để chuyển đổi biểu diễn ký tự 32-bit sang ký tự multi-byte hẹp (narrow). Hàm này nằm trong header <uchar.h>.

Hàm nhận 3 tham số:

  • Chuỗi lưu ký tự multi-byte kết quả
  • Ký tự 32-bit cần chuyển đổi
  • Con trỏ đối tượng mbstate_t để giải mã chuỗi multi-byte

Hàm trả về số byte đã ghi nếu thành công, ngược lại trả về -1.

Ví dụ

#include <iostream>
#include <uchar.h>
#include <wchar.h>
using namespace std;

int main() {
    const char32_t myStr[] = U"Hello World";
    char dest[50];
    mbstate_t p{};
    size_t length;
    int j = 0;
    while (myStr[j]) {
        length = c32rtomb(dest, myStr[j], &p);
        if ((length == 0) || (length > 50))
            break;
        for (int i = 0; i < length; ++i)
            cout << dest[i];
        j++;
    }
    return 0;
}

Kết quả

Hello World