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