_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. Wie Sie dieses Verhalten ändern, erfahren Sie unter Globaler Status in der CRT.
Mapping generischer Textroutinen
Routine | _UNICODE und _MBCS nicht definiert |
_MBCS definiert |
_UNICODE definiert |
---|---|---|---|
_tcsnbcnt |
_strncnt |
_mbsnbcnt |
_wcsncnt |
_tcsnccnt |
_strncnt |
_mbsnbcnt |
Nicht zutreffend |
_wcsncnt |
n/v | n/v | _mbsnbcnt |
_wcsncnt |
n/v | n/v | _mbsnccnt |
n/v | Nicht zutreffend | _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");
}
Output
The first 10 characters are single-byte.
Siehe auch
Zeichenfolgenbearbeitung
Gebietsschema
Interpretation von Multibytezeichensequenzen
_mbsnbcat
, _mbsnbcat_l