_mbclen, mblen, _mblen_l
Ruft die Länge ab und bestimmt die Gültigkeit eines Multibytezeichens.
Wichtig
Diese API kann nicht in Anwendungen verwendet werden, die in Windows-Runtime ausgeführt werden.Weitere Informationen finden Sie unter CRT-Funktionen nicht mit /ZW unterstützt.
size_t _mbclen(
const unsigned char *c
);
int mblen(
const char *mbstr,
size_t count
);
int _mblen_l(
const char *mbstr,
size_t count,
_locale_t locale
);
Parameter
c
Multibytezeichen.mbstr
Adresse einer Multibytezeichen-Bytesequenz.count
Anzahl zu überprüfender Bytes.locale
Zu verwendendes Gebietsschema.
Rückgabewert
_mbclen gibt 1 oder 2 zurück, je nachdem, ob das Multibytezeichen c 1 oder 2 Bytes lang ist. Es gibt keine Fehlerrückgabe für _mbclen. Wenn mbstr nicht NULL ist, gibt mblen die Länge des Multibytezeichens in Byte zurück. Wenn mbstr gleich NULL ist oder auf das NULL-Breitzeichen zeigt, gibt mblen 0 zurück. Wenn das Objekt, auf das von mbstr gezeigt wird, kein gültiges Multibytezeichen innerhalb der ersten count Zeichen bildet, gibt mblen – 1 zurück.
Hinweise
Die _mbclen-Funktion gibt die Länge des Multibytezeichens c in Byte zurück. Wenn c nicht auf das führende Byte eines Multibytezeichens zeigt, wie durch einen impliziten Aufruf von _ismbblead bestimmt wird, ist das Ergebnis von _mbclen unvorhersehbar.
mblen gibt die Länge von mbstr in Byte zurück, wenn es sich um ein gültiges Multibytezeichen handelt und die Multibytezeichengültigkeit, die der Codepage zugeordnet ist, bestimmt wird. mblen untersucht count oder weniger Byte, die in mbstr enthalten sind, jedoch nicht mehr als MB_CUR_MAX Byte.
Der Ausgabewert ist von der LC_CTYPE-Kategorieneinstellung des Gebietsschemas betroffen; weitere Informationen finden Sie unter setlocale. Die Versionen dieser Funktionen ohne das _l-Suffix verwenden das aktuelle Gebietsschema für dieses vom Gebietsschema abhängige Verhalten; die Versionen mit dem _l-Suffix sind beinahe identisch, verwenden jedoch stattdessen den ihnen übergebenen Gebietsschemaparameter. Weitere Informationen finden Sie unter Locale.
Zuordnung generischer Textroutinen
Tchar.h-Routine |
_UNICODE und _MBCS nicht definiert |
_MBCS definiert |
_UNICODE definiert |
---|---|---|---|
_tclen |
Führt eine Zuordnung zum Makro oder zur Inlinefunktion aus |
_mbclen |
Führt eine Zuordnung zum Makro oder zur Inlinefunktion aus |
Anforderungen
Routine |
Erforderlicher Header |
---|---|
_mbclen |
<mbstring.h> |
mblen |
<stdlib.h> |
_mblen_l |
<stdlib.h> |
Weitere Informationen zur Kompatibilität finden Sie unter Kompatibilität.
Beispiel
// crt_mblen.c
/* illustrates the behavior of the mblen function
*/
#include <stdlib.h>
#include <stdio.h>
int main( void )
{
int i;
char *pmbc = (char *)malloc( sizeof( char ) );
wchar_t wc = L'a';
printf( "Convert wide character to multibyte character:\n" );
wctomb_s( &i, pmbc, sizeof(char), wc );
printf( " Characters converted: %u\n", i );
printf( " Multibyte character: %x\n\n", *pmbc );
i = mblen( pmbc, MB_CUR_MAX );
printf( "Length in bytes of multibyte character %x: %u\n", *pmbc, i );
pmbc = NULL;
i = mblen( pmbc, MB_CUR_MAX );
printf( "Length in bytes of NULL multibyte character %x: %u\n", pmbc, i );
}
Ausgabe
Convert wide character to multibyte character:
Characters converted: 1
Multibyte character: 61
Length in bytes of multibyte character 61: 1
Length in bytes of NULL multibyte character 0: 0
.NET Framework-Entsprechung
Nicht zutreffend. Mit PInvoke rufen Sie die Standard-C-Funktion auf. Weitere Informationen finden Sie unter Beispiele für Plattformaufrufe.