_mbsnbcnt, _mbsnccnt, _strncnt, _wcsncnt

Aus RAD Studio
Wechseln zu: Navigation, Suche

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;
}