Freigeben über


_mbclen, mblen, _mblen_l

Ruft die Länge ab und bestimmt die Gültigkeit eines Mehrbytezeichens.

Wichtiger HinweisWichtig

Diese API kann nicht in den Anwendungen verwendet werden, die in der Windows Runtime ausführen.Weitere Informationen finden Sie unter CRT-Funktionen unterstützt nicht mit /ZW.

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
    Mehrbytezeichen.

  • mbstr
    Adresse einer Mehrbytezeichenbytesequenz.

  • count
    Anzahl Bytes zu überprüfen.

  • locale
    Zu verwendende Gebietsschema.

Rückgabewert

_mbclen gibt 1 oder 2 zurück, je nachdem ob das Mehrbytezeichen c 1 oder 2 Byte ist.Es gibt keine Fehlerrückgabe für _mbclen.Wenn mbstr nicht NULL ist, gibt mblen, die Länge in Bytes, des Mehrbytezeichens zurück.Wenn mbstrNULL ist, oder es zum NULL-Breitzeichen zeigt, mblen gibt 0 zurück.Wenn das Objekt, auf mbstr Punkte kein gültiges Mehrbytezeichen innerhalb der ersten count Zeichen bildet, mblen zurückgibt und 1.

Hinweise

Die _mbclen-Funktion gibt die Länge, in Bytes, des Mehrbytezeichens c zurück.Wenn c nicht zum führendes Byte eines Mehrbytezeichens zeigt, wie durch einen impliziten Aufruf _ismbblead bestimmt, ist das Ergebnis _mbclen unvorhersehbar.

mblen gibt die Länge in Bytes von mbstr, wenn ein gültiges Mehrbytezeichen ist zurück und bestimmt die Mehrbytezeichengültigkeit, die mit der Codepage zugeordnet ist.mblen überprüft count oder weniger Bytes, die in mbstr, aber enthalten sind, nicht mehr als MB_CUR_MAX Bytes.

Der Ausgabewert wird durch die Einstellung der LC_CTYPE Kategorieneinstellung des Gebietsschemas betroffen; setlocale finden Sie weitere Informationen.Die Versionen dieser Funktionen ohne das _l Suffix verwenden das aktuelle Gebietsschema für dieses Verhalten abhängig; die Versionen mit dem _l Suffix sind identisch, allerdings verwenden den Gebietsschemaparameter, der in stattdessen übergeben wird.Weitere Informationen finden Sie unter Gebietsschema.

Zuordnung generische Textroutinen

Tchar.h-Routine

_UNICODE und _MBCS nicht definiert

_MBCS definiert

_UNICODE definiert

_tclen

Zuordnungen zum Makro oder die Inlinefunktion

_mbclen

Zuordnungen zum Makro oder die Inlinefunktion

Anforderungen

Routine

Erforderlicher Header

_mbclen

<mbstring.h>

mblen

<stdlib.h>

_mblen_l

<stdlib.h>

Weitere Kompatibilitätsinformation finden Sie unter Kompatibilität in der Einführung.

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. Um die Standard-C-Funktion aufzurufen, verwenden Sie PInvoke. Weitere Informationen finden Sie unter Beispiele für Plattformaufrufe.

Siehe auch

Referenz

Zeichen-Klassifizierung

Gebietsschema

Interpretation von Mehrbytezeichen-Sequenzen

_mbccpy, _mbccpy_l

strlen, strlen_l, wcslen, wcslen_l, _mbslen, _mbslen_l, _mbstrlen, _mbstrlen_l