Fonctions de la bibliothèque C -mblen()

Bibliothèque standard C - <stdlib.h>

Description

Fonctions de la bibliothèque Cint mblen(const char *str, size_t n)Paramètre de retourstrLa longueur du caractère multioctet pointé.

Déclaration

Voici la déclaration de la fonction mblen().

int mblen(const char *str, size_t n)

Paramètre

  • str-- Pointeur vers le premier octet d'un caractère multioctet.
  • n-- Nombre maximal d'octets à vérifier pour la longueur du caractère.

Valeur de retour

Si un caractère large non nul est reconnu, la fonction mblen() renvoie le nombre d'octets analysés à partir de la séquence multioctet commençant à str. Si un caractère large nul est reconnu, elle renvoie 0. Si une séquence multioctet invalide est reconnue, ou si un caractère multioctet complet ne peut pas être analysé, elle renvoie -1.

Exemple

L'exemple suivant démontre l'utilisation de la fonction mblen().

#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);
   
   len = mblen( pmb, MB_CUR_MAX );
   printf( "多字节字符 %x 的字节长度:%u\n", pmb, len );
   
   pmb = NULL;
   
   len = mblen( pmb, MB_CUR_MAX );
   printf( "多字节字符 %x 的字节长度:%u\n", pmb, len );
   
   return(0);
}

Compilons et exécutons le programme ci-dessus, ce qui produira le résultat suivant :

转换为多字节字符串
被转换的字符 1
第一个多字节字符的十六进制值:0x168c6010
多字节字符 168c6010 的字节长度:1
多字节字符 0 的字节长度:0

Bibliothèque standard C - <stdlib.h>

autres extensions