Funzione libreria C - mbstowcs ()

Descrizione

La funzione di libreria C. size_t mbstowcs(schar_t *pwcs, const char *str, size_t n) converte la stringa di caratteri multibyte puntati dall'argomento str all'array puntato da pwcs.

Dichiarazione

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

size_t mbstowcs(schar_t *pwcs, const char *str, size_t n)

Parametri

  • pwcs - Questo è il puntatore a un array di elementi wchar_t che è abbastanza lungo da memorizzare una stringa larga di massimo caratteri.

  • str - Questa è la stringa di caratteri multibyte C da interpretare.

  • n - Questo è il numero massimo di caratteri wchar_t da interpretare.

Valore di ritorno

Questa funzione restituisce il numero di caratteri tradotti, escluso il carattere null finale. Se viene rilevato un carattere multibyte non valido, viene restituito un valore -1.

Esempio

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

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

int main () {
   int len;
   char *pmbnull  = NULL;
   char *pmb = (char *)malloc( MB_CUR_MAX );
   wchar_t *pwc = L"Hi";
   wchar_t *pwcs = (wchar_t *)malloc( sizeof( wchar_t ));

   printf("Converting to multibyte string\n");
   len = wcstombs( pmb, pwc, MB_CUR_MAX);
   printf("Characters converted %d\n", len);
   printf("Hex value of first multibyte character: %#.4x\n", pmb);
   
   printf("Converting back to Wide-Character string\n");
   len = mbstowcs( pwcs, pmb, MB_CUR_MAX);
   printf("Characters converted %d\n", len);
   printf("Hex value of first wide character %#.4x\n\n", pwcs);
   
   return(0);
}

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

Converting to multibyte string
Characters converted 1
Hex value of first multibyte character: 0x19a60010
Converting back to Wide-Character string
Characters converted 1
Hex value of first wide character 0x19a60030