English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutoriel de base C

Contrôle de flux C

Fonctions en C

Tableaux en C

Pointeurs en C

Chaînes de caractères en C

Structure C

Fichier C

Autres C

Manuel de référence C

Méthode d'utilisation et exemple de la fonction mblen() de la bibliothèque C

Bibliothèque standard en C - <stdlib.h>

Fonction de bibliothèque C int mblen(const char *str, size_t n) Retourne le paramètre str Longueur du caractère multibyte 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 byte du caractère multibyte.
  • n -- Nombre maximal de bytes de longueur à vérifier.

Valeur de retour

Si un caractère large non vide est reconnu, la fonction mblen() retourne le nombre de bytes de la séquence multibyte de début de str. Si un caractère large vide est reconnu, alors il retourne 0. Si une séquence multibyte invalide est reconnue ou qu'il ne peut pas解析 un caractère multibyte complet, alors il retourne -1。

Exemple en ligne

L'exemple suivant 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 *wchar_t *)malloc(sizeof(wchar_t));
   printf("Conversion en chaîne multibyte\n");
   len = wcstombs(pmb, pwc, MB_CUR_MAX);
   printf("Caractère converti %d\n", len);
   printf("Valeur hexadécimale du premier caractère multibyte :%#.4x\n", pmb);
   len = mblen(pmb, MB_CUR_MAX);
   printf("Caractère multibyte %x de longueur de byte :睵n", pmb, len);
   pmb = NULL;
   len = mblen(pmb, MB_CUR_MAX);
   printf("Caractère multibyte %x de longueur de byte :睵n", pmb, len);
   return(0);
}

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

Conversion en chaîne de caractères multibyte
Caractère converti 1
Valeur hexadécimale du premier caractère multibyte : 0x168c6010
Caractère multibyte 168c6010 Longueur en octets du caractère :1
Longueur en octets du caractère multibyte 0 : 0

Bibliothèque standard en C - <stdlib.h>