C-Bibliotheksfunktionen -mblen()

C-Standardbibliothek - <stdlib.h>

Beschreibung

C-Bibliotheksfunktionenint mblen(const char *str, size_t n)RückgabeparameterstrDie Länge des Multibyte-Zeichens, auf das gezeigt wird.

Deklaration

Nachfolgend finden Sie die Deklaration der Funktion mblen().

int mblen(const char *str, size_t n)

Parameter

  • str-- Zeiger auf das erste Byte eines Multibyte-Zeichens.
  • n-- Maximale Anzahl von Bytes, die zur Überprüfung der Zeichenlänge verwendet wird.

Rückgabewert

Wenn ein Breitzeichen ungleich null erkannt wird, gibt die Funktion mblen() die Anzahl der Bytes zurück, die aus der bei str beginnenden Multibyte-Sequenz geparst wurden. Wenn ein Null-Breitzeichen erkannt wird, gibt sie 0 zurück. Wenn eine ungültige Multibyte-Sequenz erkannt wird oder ein vollständiges Multibyte-Zeichen nicht geparst werden kann, gibt sie -1 zurück.

Beispiel

Das folgende Beispiel demonstriert die Verwendung der Funktion 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);
}

Lassen Sie uns das obige Programm kompilieren und ausführen, was das folgende Ergebnis erzeugt:

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

C-Standardbibliothek - <stdlib.h>

Weitere Erweiterungen