mblen
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++ |
---|---|---|---|
+ |
+ |
+ |
+ |