mblen

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu stdlib.h - Index


Header-Datei

stdlib.h

Kategorie

Routinen für Speicher- und String-Bearbeitung

Prototyp

int mblen(const char *s, size_t n);

Beschreibung

Ermittelt die Länge eines Multibyte-Zeichens.

Ist s nicht NULL, ermittelt mblen die Anzahl der Bytes des Multibyte-Zeichens, auf das s zeigt. Die Maximalzahl der überprüften Bytes wird durch n festgelegt.

Das Verhalten von mblen wird von der Einstellung der Kategorie LC_CTYPE des aktuellen Gebietsschemas beeinflusst.

Rückgabewert

Ist s NULL, gibt mblen einen Wert ungleich Null zurück, wenn Multibyte-Zeichen eine länderabhängige Codierung aufweisen. Andernfalls gibt mblen 0 zurück.

Ist s nicht NULL, gibt mblen 0 zurück, wenn s auf ein Nullzeichen zeigt, und -1, wenn die nächsten n Bytes kein gültiges Multibyte-Zeichen ergeben. In allen anderen Fällen wird die Anzahl der Bytes zurückgegeben, die ein gültiges Multibyte-Zeichen ausmachen.

Beispiel



 #include <stdlib.h>
 #include <stdio.h>
 void main(void)
 {
   int i;
   char *mulbc = (char *)malloc( sizeof( char) );
   wchar_t widec = L'a';
   printf (" convert a wide character to multibyte character:\n" );
   i = wctomb (mulbc, widec);
   printf( "\tCharacters converted: %u\n", i);
   printf( "\tMultibyte character: %x\n\n", mulbc);
   printf( " Find length--in byte-- of multibyte character:\n");
   i = mblen( mulbc, MB_CUR_MAX);
   printf("\tLength--in bytes--if multiple character: %u\n",i);
   printf("\tWide character: %x\n\n", mulbc);
   printf( " Attempt to find length of a Wide character Null:\n");
   widec = L'\0';
   wctomb(mulbc, widec);
   i = mblen( mulbc, MB_CUR_MAX);
   printf("\tLength--in bytes--if multiple character: %u\n",i);
   printf("\tWide character: %x\n\n", mulbc);
 }



Portabilität



POSIX Win32 ANSI C ANSI C++

+

+

+

+