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: