Computer >> 컴퓨터 >  >> 프로그램 작성 >> C 프로그래밍

C/C++의 c16rtomb() 함수?

<시간/>

C++에서는 16비트 문자 표현을 사용할 수 있습니다. c16rtomb() 함수는 16비트 문자 표현을 좁은 다중 바이트 문자 표현으로 변환하는 데 사용됩니다. 이 함수는 uchar.h 헤더 파일에서 찾을 수 있습니다.

이 함수는 세 개의 매개변수를 취합니다. 이들은 -

  • 멀티바이트 문자가 저장될 문자열
  • 변환할 16비트 문자
  • mbstate_t 개체 유형의 포인터입니다. 멀티바이트 문자열을 해석하는 데 사용됩니다.

이 함수는 성공하면 문자 배열에 쓰여진 바이트 수를 반환하고 그렇지 않으면 -1을 반환합니다. 더 나은 아이디어를 얻기 위해 예를 살펴보겠습니다.

예시

#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++;
   }
}

출력

Hello World