Freigeben über


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

Siehe auch

Referenz

Zeichenklassifizierung

Locale

Interpretation von Mehrbytezeichensequenzen

_mbccpy, _mbccpy_l

strlen, wcslen, _mbslen, _mbslen_l, _mbstrlen, _mbstrlen_l