_strncnt, _wcsncnt, _mbsnbcnt, _mbsnbcnt_l, _mbsnccnt, _mbsnccnt_l

Gibt die Anzahl von Bytes oder Zeichen innerhalb einer angegebenen Zählers zurück.

Wichtig

_mbsnbcnt, _mbsnbcnt_l, _mbsnccnt und _mbsnccnt_l können nicht in Anwendungen eingesetzt werden, die in Windows-Runtime ausgeführt werden. Weitere Informationen finden Sie im Artikel CRT functions not supported in Universal Windows Platform apps (In Apps für die universelle Windows-Plattform nicht unterstützte CRT-Funktionen).

Syntax

size_t _strncnt(
   const char *str,
   size_t count
);
size_t _wcsncnt(
   const wchar_t *str,
   size_t count
);
size_t _mbsnbcnt(
   const unsigned char *str,
   size_t count
);
size_t _mbsnbcnt_l(
   const unsigned char *str,
   size_t count,
   _locale_t locale
);
size_t _mbsnccnt(
   const unsigned char *str,
   size_t count
);
size_t _mbsnccnt_l(
   const unsigned char *str,
   size_t count,
   _locale_t locale
);

Parameter

str
Zu untersuchende Zeichenfolge.

count
Anzahl von Zeichen oder Bytes, die in str zu untersuchen sind.

locale
Zu verwendendes Gebietsschema.

Rückgabewert

_mbsnbcnt und _mbsnbcnt_l geben die Anzahl von Bytes zurück, die im ersten count eines Multibytezeichens von str gefunden werden. _mbsnccnt und _mbsnccnt_l geben die Anzahl von Zeichen zurück, die im ersten count der Bytes von str gefunden werden. Wenn vor abschluss der Untersuchung str ein NULL-Zeichen gefunden wird, geben sie die Anzahl der Bytes oder Zeichen zurück, die vor dem Nullzeichen gefunden wurden. Wenn str aus weniger als count Zeichen oder Bytes besteht, geben sie die Anzahl von Bytes oder Zeichen in der Zeichenfolge zurück. Wenn count kleiner als null ist, geben sie 0 zurück. In früheren Versionen hatten diese Funktionen einen Rückgabewert vom Typ int statt size_t.

_strncnt gibt die Anzahl von Zeichen in den ersten count Bytes der Einzelbytezeichenfolge str zurück. _wcsncnt gibt die Anzahl von Zeichen in den ersten count Breitzeichen der Breitzeichenfolge str zurück.

Hinweise

_mbsnbcnt und _mbsnbcnt_l zählen die Anzahl von Bytes, die im ersten count eines Multibytezeichens von str gefunden werden. _mbsnbcnt und _mbsnbcnt_l ersetzen mtob und sollten anstelle von mtob verwendet werden.

_mbsnccnt und _mbsnccnt_l zählen die Anzahl von Zeichen, die im ersten count der Bytes von str gefunden werden. Wenn _mbsnccnt ein _mbsnccnt_l NULL-Zeichen im zweiten Byte eines Doppelbytezeichens auftritt, wird das erste Byte auch als NULL betrachtet und ist nicht im zurückgegebenen Anzahlwert enthalten. _mbsnccnt und _mbsnccnt_l ersetzen btom und sollten anstelle von btom verwendet werden.

Wenn str es sich um einen NULL Zeiger handelt oder 0 ist count , rufen diese Funktionen den ungültigen Parameterhandler auf, wie in der Parameterüberprüfung beschrieben, errno wird auf EINVAL"0" festgelegt, und die Funktion gibt "0" zurück.

Der Ausgabewert wird durch die Einstellung der LC_CTYPE Kategorieeinstellung des Gebietsschemas beeinflusst. 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.

Standardmäßig gilt der globale Zustand dieser Funktion für die Anwendung. Informationen zum Ändern dieses Verhaltens finden Sie im Global state in the CRT.

Generische Textroutinzuordnungen

Routine _UNICODE und _MBCS nicht definiert _MBCS Definiert _UNICODE Definiert
_tcsnbcnt _strncnt _mbsnbcnt _wcsncnt
_tcsnccnt _strncnt _mbsnbcnt
_wcsncnt n/v n/v _mbsnbcnt
_wcsncnt n/v n/v _mbsnccnt
n/v _mbsnbcnt_l _mbsnccnt_l

Anforderungen

Routine Erforderlicher Header
_mbsnbcnt <mbstring.h>
_mbsnbcnt_l <mbstring.h>
_mbsnccnt <mbstring.h>
_mbsnccnt_l <mbstring.h>
_strncnt <tchar.h>
_wcsncnt <tchar.h>

Weitere Informationen zur Kompatibilität finden Sie unter Kompatibilität.

Beispiel

// crt_mbsnbcnt.c

#include  <mbstring.h>
#include  <stdio.h>

int main( void )
{
   unsigned char str[] = "This is a multibyte-character string.";
   unsigned int char_count, byte_count;
   char_count = _mbsnccnt( str, 10 );
   byte_count = _mbsnbcnt( str, 10 );
   if ( byte_count - char_count )
      printf( "The first 10 characters contain %d multibyte characters\n", char_count );
   else
      printf( "The first 10 characters are single-byte.\n");
}

Ausgabe

The first 10 characters are single-byte.

Siehe auch

Zeichenfolgenmanipulation
Gebietsschema
Interpretation von Multibyte-Zeichensequenzen
_mbsnbcat, _mbsnbcat_l