El c32rtomb() es una función incorporada en C/C++ que convierte la representación de caracteres de 32 bits en una representación de caracteres multibyte estrecha. Se define dentro del archivo de encabezado uchar.h de C++.
Sintaxis :
size_t c32rtomb(char* s, char32_t c32, mbstate_t* p)
Parámetros : la función acepta tres parámetros obligatorios como se muestra a continuación:
- s : especifica la string donde se almacenará el carácter multibyte.
- c16 : especifica el carácter de 32 bits para convertir.
- p : especifica el puntero a un objeto mbstate_t utilizado al interpretar la string de varios bytes.
Valor devuelto : la función devuelve dos valores como se muestra a continuación:
- Si el programa tiene éxito, la función devuelve el número de bytes escritos en la array de caracteres a la que apunta s.
- Si falla, se devuelve -1 y EILSEQ se almacena en err no.
Programa 1 :
// C++ program to illustrate the // c32rtomb () function on it's success #include <iostream> #include <uchar.h> #include <wchar.h> using namespace std; int main() { const char32_t str[] = U"GeeksforGeeks"; char s[50]; mbstate_t p{}; size_t length; int j = 0; while (str[j]) { // initializing the function length = c32rtomb(s, str[j], &p); if ((length == 0) || (length > 50)) break; for (int i = 0; i < length; ++i) cout << s[i]; ++j; } return 0; }
Producción:
GeeksforGeeks
Programa 2 :
// C++ program to illustrate the // c32rtomb () function on it's failure #include <iostream> #include <uchar.h> #include <wchar.h> using namespace std; int main() { const char32_t str[] = U""; char s[50]; mbstate_t p{}; size_t length; int j = 0; while (str[j]) { // initializing the function length = c32rtomb(s, str[j], &p); if ((length == 0) || (length > 50)) break; for (int i = 0; i < length; ++i) cout << s[i]; ++j; } return 0; }
Producción:
Nota: No hay salida en el programa anterior ya que es un caso de falla.
Publicación traducida automáticamente
Artículo escrito por IshwarGupta y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA