_mbbtype
Nach oben zu String.h - Index
Header-Datei
mbstring.h
Kategorie
Klassifizierungsroutinen
Prototyp
int _mbbtype(unsigned char ch, int mode);
Beschreibung
Die Funktion _mbbtype prüft, ob das als Argument ch übergebene Zeichen ein Einzelbyte-Zeichen oder das führende bzw. nachstehende Byte eines Multibyte-Zeichens ist. Die Funktion _mbbtype kann ermitteln, ob ch ein ungültiges Zeichen ist.
Rückgabewert
Der Rückgabewert hängt vom Wert von ch sowie von der an ch durchzuführenden Prüfung ab.
Der von _mbbtype zurückgegebene Wert entspricht einem der folgenden, in mbctype.h definierten konstanten Ausdrücke:
| Wert von mode | Wert von ch | Durchgeführter Test | Rückgabewert |
|---|---|---|---|
mode != 1 |
Einzel-Byte |
Gültiges Einzel- oder führendes Byte |
_MBC_SINGLE |
mode != 1 |
Führendes Byte |
Gültiges Einzel-Byte des führenden Byte |
_MBC_LEAD |
mode = 1 |
Nachstehendes Byte |
Gültiges Einzel- oder nachstehendes Byte |
_MBC_TRAIL |
|
Beliebiger Wert |
Beliebiger Wert |
Gültiges Zeichen |
_MBC_ILLEGAL |
Beispiel
#include <mbstring.h>
#include <mbctype.h>
int count_chars(char* input)
{
int last_type = 0;
int chars = 0;
while (*input)
{
/* Den Typ des aktuellen char auf der Basis des Typs des letzten ermitteln */
last_type = _mbbtype(*input, last_type);
/* Einzel- und MBCS-Zeichen als ganz Zeichen behandeln. Bei ungültigen Zeichen mit -1 beenden */
switch (last_type)
{
case _MBC_LEAD:
case _MBC_SINGLE:
chars++;
break;
case _MBC_ILLEGAL:
return -1;
}
input++;
}
/* Die Anzahl der berechneten Zeichen */
return chars;
}