std::mbsinit
Von cppreference.com
| Definiert in Header <cwchar> |
||
| int mbsinit( const std::mbstate_t* ps); |
||
Wenn ps kein Nullzeiger ist, ermittelt die Funktion mbsinit, ob das darauf verweisende std::mbstate_t-Objekt den anfänglichen Konvertierungszustand beschreibt.
Inhalt |
[bearbeiten] Hinweise
Obwohl ein Null-initialisiertes std::mbstate_t immer den anfänglichen Konvertierungszustand darstellt, kann es andere Werte von std::mbstate_t geben, die ebenfalls den anfänglichen Konvertierungszustand darstellen.
[bearbeiten] Parameter
| ps | - | Zeiger auf das zu untersuchende std::mbstate_t-Objekt |
[bearbeiten] Rückgabewert
0, wenn ps kein Nullzeiger ist und nicht den anfänglichen Konvertierungszustand darstellt, ein von Null verschiedener Wert sonst.
[bearbeiten] Beispiel
Führen Sie diesen Code aus
#include <clocale> #include <cwchar> #include <iostream> #include <string> int main() { // allow mbrlen() to work with UTF-8 multibyte encoding std::setlocale(LC_ALL, "en_US.utf8"); // UTF-8 narrow multibyte encoding std::string str = "水"; // or u8"\u6c34" or "\xe6\xb0\xb4" std::mbstate_t mb = std::mbstate_t(); (void)std::mbrlen(&str[0], 1, &mb); if (!std::mbsinit(&mb)) std::cout << "After processing the first 1 byte of " << str << " the conversion state is not initial\n"; (void)std::mbrlen(&str[1], str.size() - 1, &mb); if (std::mbsinit(&mb)) std::cout << "After processing the remaining 2 bytes of " << str << ", the conversion state is initial conversion state\n"; }
Ausgabe
After processing the first 1 byte of 水 the conversion state is not initial After processing the remaining 2 bytes of 水, the conversion state is initial conversion state
[bearbeiten] Siehe auch
| Konvertierungsinformationen, die zum Iterieren über Multibyte-Zeichenstrings benötigt werden (Klasse) | |
| C-Dokumentation für mbsinit
| |