Computer >> Máy Tính >  >> Lập trình >> lập trình C

hàm c16rtomb () trong C / C ++?

Trong C ++, chúng ta có thể sử dụng các biểu diễn ký tự 16 bit. Hàm c16rtomb () được sử dụng để chuyển đổi biểu diễn ký tự 16 bit thành biểu diễn ký tự nhiều byte hẹp. Chúng ta có thể tìm thấy hàm này bên trong tệp tiêu đề uchar.h.

Hàm này có ba tham số. Đây là -

  • Chuỗi nơi ký tự nhiều byte sẽ được lưu trữ
  • Ký tự 16 bit để chuyển đổi
  • Con trỏ của đối tượng kiểu mbstate_t. được sử dụng để diễn giải chuỗi multibyte.

Hàm này trả về số byte được ghi vào mảng ký tự, khi nó thành công, nếu không thì trả về -1. Hãy để chúng tôi xem một ví dụ để có ý tưởng tốt hơn.

Ví dụ

#include <iostream>
#include <uchar.h>
#include <wchar.h>
using namespace std;
int main() {
   const char16_t myStr[] = u"Hello World";
   char dest[50];
   mbstate_t p{};
   size_t length;
   int j = 0;
   while (myStr[j]) {
      length = c16rtomb(dest, myStr[j], &p); //get length from c16rtomb() method
      if ((length == 0) || (length > 50))
         break;
      for (int i = 0; i < length; ++i)
         cout << dest[i];
         j++;
   }
}

Đầu ra

Hello World