Latest web development tutorials

funzioni di libreria C - mbstowcs ()

C libreria standard - <stdlib.h> C libreria standard - <stdlib.h>

descrizione

C funzioni di libreriasize_t mbstowcs (schar_t * PWC, const char * str, size_t n) per convertire un argomento stringa punti strper array di caratteri multi-byte sottolineato parametriPWC.

dichiarazione

Qui è la funzione () mbstowcs dichiarazione.

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

parametri

  • PWCs - indicando una matrice wchar_t, la lunghezza della matrice degli elementi è sufficiente per memorizzare una stringa ampia lunghezza massima di caratteri.
  • str - stringa di caratteri multi-byte da convertire.
  • n - numero massimo di caratteri da convertire.

Valore di ritorno

Questa funzione restituisce il numero di caratteri nella conversione, escluso il carattere di terminazione null. Se si verifica un caratteri non validi multi-byte, il valore di ritorno di -1.

Esempi

L'esempio seguente mostra mbstowcs () viene utilizzata la funzione.

#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("转换为多字节字符串\n");
   len = wcstombs( pmb, pwc, MB_CUR_MAX);
   printf("被转换的字符 %d\n", len);
   printf("第一个多字节字符的十六进制值:%#.4x\n", pmb);
   
   printf("转换回宽字符字符串\n");
   len = mbstowcs( pwcs, pmb, MB_CUR_MAX);
   printf("被转换的字符 %d\n", len);
   printf("第一个宽字符的十六进制值:%#.4x\n\n", pwcs);
   
   return(0);
}

Facciamo compilare ed eseguire il programma di cui sopra, che si tradurrà in quanto segue:

转换为多字节字符串
被转换的字符 1
第一个多字节字符的十六进制值:0x19a60010
转换回宽字符字符串
被转换的字符 1
第一个宽字符的十六进制值:0x19a60030

C libreria standard - <stdlib.h> C libreria standard - <stdlib.h>