std:: mbsinit
|
Definiert in Header
<cwchar>
|
||
|
int
mbsinit
(
const
std::
mbstate_t
*
ps
)
;
|
||
Wenn
ps
kein Nullzeiger ist, bestimmt die Funktion
mbsinit
, ob das referenzierte
std::mbstate_t
-Objekt den initialen Konvertierungszustand beschreibt.
Inhaltsverzeichnis |
Hinweise
Obwohl ein null-initialisierter std::mbstate_t immer den anfänglichen Konvertierungszustand repräsentiert, kann es andere Werte von std::mbstate_t geben, die ebenfalls den anfänglichen Konvertierungszustand repräsentieren.
Parameter
| ps | - | Zeiger auf das std::mbstate_t Objekt zur Untersuchung |
Rückgabewert
0 wenn ps kein Nullzeiger ist und nicht den initialen Konvertierungszustand repräsentiert, andernfalls ein Wert ungleich Null.
Beispiel
#include <clocale> #include <cwchar> #include <iostream> #include <string> int main() { // erlaubt mbrlen() mit UTF-8 Multibyte-Kodierung zu arbeiten std::setlocale(LC_ALL, "en_US.utf8"); // UTF-8 schmale Multibyte-Kodierung std::string str = "水"; // oder u8"\u6c34" oder "\xe6\xb0\xb4" std::mbstate_t mb = std::mbstate_t(); (void)std::mbrlen(&str[0], 1, &mb); if (!std::mbsinit(&mb)) std::cout << "Nach der Verarbeitung des ersten 1 Bytes von " << str << " ist der Konvertierungszustand nicht initial\n"; (void)std::mbrlen(&str[1], str.size() - 1, &mb); if (std::mbsinit(&mb)) std::cout << "Nach der Verarbeitung der verbleibenden 2 Bytes von " << str << " ist der Konvertierungszustand der initiale Konvertierungszustand\n"; }
Ausgabe:
Nach der Verarbeitung des ersten 1 Bytes von 水 ist der Konvertierungszustand nicht initial Nach der Verarbeitung der verbleibenden 2 Bytes von 水 ist der Konvertierungszustand der initiale Konvertierungszustand
Siehe auch
|
Konvertierungsstatusinformationen, die zum Iterieren von Multibyte-Zeichenketten erforderlich sind
(Klasse) |
|
|
C-Dokumentation
für
mbsinit
|
|