función wcsrtombs() en C/C++

La función wcsrtombs() convierte caracteres anchos en strings multibyte. Esta función convierte la string de caracteres ancha representada por *src en la string de caracteres de varios bytes correspondiente y se almacena en la array de caracteres a la que apunta dest si dest no es nulo. Se escribe un máximo de len caracteres en dest .
Sintaxis: 
 

size_t wcsrtombs( char* dest, const wchar_t** src, size_t len, mbstate_t* ps )

Parámetros: La función acepta cuatro parámetros obligatorios que se describen a continuación: 
 

  • dest : Puntero a una array de elementos char lo suficientemente larga como para almacenar una string de bytes máximos
  • src : Puntero a una string ancha para traducir
  • len : número máximo de bytes disponibles en la array de destino
  • ps: puntero al objeto de estado de conversión

Valor devuelto: la función devuelve dos valores como se muestra a continuación: 
 

  • En caso de éxito, devuelve el número de bytes escritos en dest (sin incluir el eventual carácter nulo de terminación)
  • Si ocurre algún error, se devuelve -1 y errno se establece en EILSEQ .

Los siguientes programas ilustran la función anterior: 
Programa 1: 
 

CPP

// C++ program to illustrate
// wcsrtombs() function
#include <bits/stdc++.h>
using namespace std;
 
int main()
{
 
    // initialize the string
    const wchar_t* src = L"Geekforgeeks";
 
    // maximum length of the dest
    char dest[20];
 
    // initial state
    mbstate_t ps = mbstate_t();
 
    // maximum length of multibyte character
    int len = 12;
 
    // function to convert wide-character
    // to multibyte string
    int value = wcsrtombs(dest, &src, len, &ps);
 
    cout << "Number of multibyte characters = " << value << endl;
 
    cout << "Multibyte characters written = " << dest << endl;
 
    return 0;
}
Producción: 

Number of multibyte characters = 12
Multibyte characters written = Geekforgeeks

 

Programa 2: 
 

CPP

// C++ program to illustrate
// wcsrtombs() function
#include <bits/stdc++.h>
using namespace std;
 
int main()
{
 
    // initialize the string
    const wchar_t* src = L"This website is the best";
 
    // maximum length of the dest
    char dest[20];
 
    // initial state
    mbstate_t ps = mbstate_t();
 
    // maximum length of multibyte character
    int len = 14;
 
    // function to convert wide-character
    // to multibyte string
    int value = wcsrtombs(dest, &src, len, &ps);
 
    cout << "Number of multibyte characters = " << value << endl;
 
    cout << "Multibyte characters written = " << dest << endl;
 
    return 0;
}
Producción: 

Number of multibyte characters = 14
Multibyte characters written = This website i

 

Publicación traducida automáticamente

Artículo escrito por AmanSrivastava1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *