_mbsnbcnt, _mbsnccnt, _strncnt, _wcsncnt
Nach oben zu String.h - Index
Header-Datei
mbstring.h
Kategorie
Routinen für Speicher- und String-Bearbeitung
Prototyp
size_t _mbsnbcnt(const unsigned char * str, size_t nmbc);
size_t _mbsnccnt(const unsigned char * str, size_t nbyte);
Beschreibung
Wenn _MBCS definiert ist, wird:
- _mbsnbcnt dem portierbaren Makro _tcsnbcnt zugeordnet.
- _mbsnccnt dem portierbaren Makro _tcsnccnt zugeordnet.
Wenn _UNICODE definiert ist, wird:
- Sowohl _mbsnbcnt als auch _mbsnccnt dem Makro _wcsncnt zugeordnet.
Wenn weder _MBCS noch _UNICODE definiert ist, werden _tcsnbcnt und _tcsnccnt dem Makro _strncnt zugeordnet. _strncnt ist die Einzelbyte-Version dieser Funktionen, und _wcsncnt ist die Wide-Zeichen-Version dieser Funktionen. _strncnt und _wcsncnt stehen nur für Zuordnungen zu generischem Text zur Verfügung. Sie sollten nicht direkt verwendet werden.
_mbsnbcnt überprüft die ersten nmbc
Multibyte-Zeichen des Arguments str
. Die Funktion gibt die Anzahl der in diesen Zeichen gefundenen Bytes zurück.
_mbsnccnt überprüft die ersten nmbc
Bytes des Arguments str
. Die Funktion gibt die Anzahl der in diesen Bytes gefundenen Zeichen zurück. Wird im zweiten Byte eines Multibyte-Zeichens NULL gefunden, wird das gesamte Zeichen als NULL betrachtet und im Rückgabewert nicht berücksichtigt.
Jede der Funktionen beendet die Überprüfung des Arguments str
, wenn vor der Prüfung der angegebenen Anzahl von Zeichen oder Bytes NULL gefunden wird.
Wenn str
weniger als die angegebene Anzahl von Zeichen oder Bytes enthält, gibt die Funktion die in str
gefundene Anzahl von Zeichen oder Bytes zurück.
Rückgabewert
_mbsnbcnt gibt die Anzahl der gefundenen Bytes zurück.
_mbsnccnt gibt die Anzahl der gefundenen Zeichen zurück.
Sind die Werte von nmbc oder nbyte kleiner Null, geben die Funktionen 0 zurück.
Beispiel
# include <mbstring.h>
# include <iostream>
using namespace std;
int main()
{
unsigned char str[]="Hello world! ";
int n_charact, n_byte;
n_byte=_mbsnbcnt(str, 5);
n_charact=_mbsnccnt(str, 5);
cout<<"The first 5 multibyte characters of \""<<str<<"\" contain "<<n_byte<<" bytes."<<endl;
cout<<"The first 5 bytes of \""<<str<<"\" contain "<<n_charact<<" characters."<<endl;
return 0;
}