C++ cuchar::c16rtomb() Function



The std::cuchar::c16rtomb() function in C++, is used to convert a single char16_t character to its corresponding multibyte representation. It is used when working with Unicode character conversions.

This function takes multibyte output buffer, a char16_t input character and an optional mbstate_t state object to handle multi-state conversions. If the input character is u'\0', it resets the conversion state.

Syntax

Following is the syntax for std::cuchar::mbrtoc16() function.

size_t c16rtomb ( char * pmb, char16_t c16, mbstate_t * ps );

Parameters

  • pmb − It indicates a pointer to an array large enough to hold a multi-byte sequence.
  • c16 − It indicates a 16-bit character of type char16_t.
  • ps − It indicates a pointer to a mbstate_t object that defines a conversion state.

Return value

This function returns the size of the multibyte sequence written at pmb, including any shift characters.

Example 1

Let's look at the following example, where we are going to perform the basic conversion.

#include <cuchar>
#include <iostream>
#include <cstring>
int main() {
   char a[MB_CUR_MAX];
   char16_t b = u 'X';
   mbstate_t c = mbstate_t();
   size_t z = c16rtomb(a, b, & c);
   if (z != (size_t) - 1) {
      std::cout << "Converted : " << a << "\n";
   } else {
      std::cerr << "Conversion failed.\n";
   }
   return 0;
}

Output

Output of the above code is as follows −

Converted : X
cpp_cuchar.htm
Advertisements