C++에서는 32비트 문자 표현을 사용할 수 있습니다. c32rtomb() 함수는 32비트 문자 표현을 좁은 다중 바이트 문자 표현으로 변환하는 데 사용됩니다. 이 함수는 uchar.h 헤더 파일에서 찾을 수 있습니다.
이 함수는 세 개의 매개변수를 사용합니다. 이들은 -
- 멀티바이트 문자가 저장될 문자열
- 변환할 32비트 문자
- mbstate_t 개체 유형의 포인터입니다. 멀티바이트 문자열을 해석하는 데 사용됩니다.
이 함수는 성공하면 문자 배열에 쓰여진 바이트 수를 반환하고 그렇지 않으면 -1을 반환합니다. 더 나은 아이디어를 얻기 위해 예를 살펴보겠습니다.
예시
#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); //get length from c32rtomb() method
if ((length == 0) || (length > 50))
break;
for (int i = 0; i < length; ++i)
cout << dest[i];
j++;
}
} 출력
Hello World