función wctob() en C++

La función wctob() en C++ ayuda a convertir un carácter ancho wc en un solo byte, si su equivalente de carácter multibyte en el estado de cambio inicial es un solo byte. Dado que la función utiliza codificación de un solo byte, por lo tanto, se utiliza para caracteres del juego de caracteres ASCII.

Sintaxis:

int wctob (wint_t wc);

Parámetros: La función anterior acepta un solo parámetro como se describe a continuación:

  • wc: este es el único parámetro aceptado por la función wctob(), es el carácter ancho necesario para reducir/convertir.
  • Tipo de devolución: la función devuelve una representación de un solo byte del carácter ancho wc, si corresponde a un carácter multibyte con una longitud de un solo byte en el estado inicial. De lo contrario, devuelve EOF (fin de archivo).

    Los siguientes programas ilustran la función anterior:

    Programa 1:

    // Program illustrating
    // wctob() function
    #include <bits/stdc++.h>
      
    // function implementing the wctob() function
    int fun()
    {
      
        int i, num;
        const wchar_t wc[] = L"priya lal";
      
        num = 0;
        for (i = 0; i < wcslen(wc); ++i)
            if (wctob(wc[i]) != EOF)
                ++num;
      
        // prints the numbers of characters
        // needed to be translated
        wprintf(L"wc has %d characters to be translated"
                "to single-byte characters.",
                num);
    }
      
    // Driver Program
    int main()
    {
        fun();
        return 0;
    }
    
    Producción:

    wc has 9 characters to be translatedto single-byte characters.
    

    Programa 2:

    // C++ program illustrating the wctob() function
    #include <bits/stdc++.h>
      
    // function implementing the wctob() function
    void fun(wchar_t wc)
    {
      
        int cn = wctob(wc);
        if (cn != EOF)
      
            printf("%#x translated to %#x\n", wc, cn);
      
        else
      
            printf("%#x could not be translated\n", wc);
    }
      
    // Driver Program
    int main(void)
    {
        char* utf_locale_present
            = setlocale(LC_ALL, "th_TH.utf8");
      
        // prints the result of the function
        puts("In Thai UTF-8 locale:");
        fun(L'a');
        fun(L'?');
    }
    
    Producción:

    In Thai UTF-8 locale:
    0x61 translated to 0x61
    0x3f translated to 0x3f
    

    Publicación traducida automáticamente

    Artículo escrito por priya_1998 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 *