Funzione libreria C - wctomb ()

Descrizione

La funzione di libreria C. int wctomb(char *str, wchar_t wchar) funzione converte il carattere largo wchar alla sua rappresentazione multibyte e la memorizza all'inizio della matrice di caratteri puntata da str.

Dichiarazione

Di seguito è riportata la dichiarazione per la funzione wctomb ().

int wctomb(char *str, wchar_t wchar)

Parametri

  • str - Questo è il puntatore a un array abbastanza grande da contenere un carattere multibyte,

  • wchar - Questo è il carattere ampio di tipo wchar_t.

Valore di ritorno

  • Se str non è NULL, la funzione wctomb () restituisce il numero di byte che sono stati scritti nell'array di byte in str. Se wchar non può essere rappresentato come una sequenza multibyte, viene restituito -1.

  • Se str è NULL, la funzione wctomb () restituisce un valore diverso da zero se la codifica ha uno stato di spostamento non banale, o zero se la codifica è senza stato.

Esempio

L'esempio seguente mostra l'utilizzo della funzione wctomb ().

#include <stdio.h>
#include <stdlib.h>

int main () {
   int i;
   wchar_t wc = L'a';
   char *pmbnull = NULL;
   char *pmb = (char *)malloc(sizeof( char ));

   printf("Converting wide character:\n");
   i = wctomb( pmb, wc );
   printf("Characters converted: %u\n", i);
   printf("Multibyte character: %.1s\n", pmb);

   printf("Trying to convert when target is NULL:\n");
   i = wctomb( pmbnull, wc );
   printf("Characters converted: %u\n", i);
   /* this will not print any value */
   printf("Multibyte character: %.1s\n", pmbnull);
   
   return(0);
}

Compiliamo ed eseguiamo il programma sopra che produrrà il seguente risultato:

Converting wide character:
Characters converted: 1
Multibyte character: a
Trying to convert when target is NULL:
Characters converted: 0
Multibyte character: