Namensräume
Varianten
Aktionen

std::mbrlen

Aus cppreference.com
< cpp‎ | string‎ | multibyte

 
 
Strings Bibliothek
Null-terminierte Strings
Original:
Null-terminated strings
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Byte-Strings
Multibyte-Strings
Wide Strings
Classes
Original:
Classes
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
basic_string
char_traits
 
Nullterminierten Multibyte Strings
Wide / Multibyte Konvertierungen
Original:
Wide/multibyte conversions
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
mbsinit
Types
Original:
Types
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
mbstate_t
 
definiert in Header <cwchar>
std::size_t mbrlen( const char* s, std::size_t n, std::mbstate_t* ps);
Bestimmt die Größe in Bytes, der Rest des Multibyte-Zeichen, dessen erstes Byte wird durch s hingewiesen, angesichts der aktuellen Konvertierungsstatus ps .
Original:
Determines the size, in bytes, of the remainder of the multibyte character whose first byte is pointed to by s, given the current conversion state ps.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Diese Funktion entspricht dem Aufruf std::mbrtowc(nullptr, s, n, ps?ps:&internal) für einige versteckte Objekt internal vom Typ std::mbstate_t, außer, dass der Ausdruck ps nur einmal ausgewertet wird .
Original:
This function is equivalent to the call std::mbrtowc(nullptr, s, n, ps?ps:&internal) for some hidden object internal of type std::mbstate_t, except that the expression ps is evaluated only once.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

Inhaltsverzeichnis

[Bearbeiten] Parameter

s -
Zeiger auf ein Element einer Multibyte Zeichenkette
Original:
pointer to an element of a multibyte character string
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
n -
Grenze für die Anzahl von Bytes in s, die untersucht werden können
Original:
limit on the number of bytes in s that can be examined
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
ps -
Zeiger auf die Variable, die die Umwandlung Zustand
Original:
pointer to the variable holding the conversion state
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

[Bearbeiten] Rückgabewert

0 wenn die nächste n oder weniger Bytes die Null-Zeichen abgeschlossen .
Original:
0 if the next n or fewer bytes complete the null character.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Die Anzahl der Bytes (zwischen 1 und n) ausfüllen, dass ein gültiges Multibyte-Zeichen
Original:
The number of bytes (between 1 and n) that complete a valid multibyte character
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
(size_t)-1 wenn die Kodierung Fehler auftritt
Original:
(size_t)-1 if encoding error occurs
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
(size_t)-2 wenn die nächsten n bytes Teil eines möglicherweise gültiges Multibyte-Zeichen, die noch unvollständig ist nach Prüfung aller n Byte sind
Original:
(size_t)-2 if the next n bytes are part of a possibly valid multibyte character, which is still incomplete after examining all n bytes
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

[Bearbeiten] Beispiel

#include <clocale>
#include <string>
#include <iostream>
#include <cwchar>
 
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 = u8"水"; // or u8"\u6c34" or "\xe6\xb0\xb4"
    std::mbstate_t mb = std::mbstate_t();
    int len1 = std::mbrlen(&str[0], 1, &mb);
    if(len1 == -2) {
        std::cout << "The first 1 byte of " << str
                  << " is an incomplete multibyte char (mbrlen returns -2)\n";
    }
    int len2 = std::mbrlen(&str[1], str.size()-1, &mb);
    std::cout << "The remaining " << str.size()-1 << " bytes of " << str
              << " hold " << len2 << " bytes of the multibyte character\n";
    std::cout << "Attempting to call mbrlen() in the middle of " << str
              << " while in initial shift state returns "
              << (int)mbrlen(&str[1], str.size(), &mb) << '\n';
 
}

Output:

The first 1 byte of 水 is an incomplete multibyte char (mbrlen returns -2)
The remaining 2 bytes of 水 hold 2 bytes of the multibyte character
Attempting to call mbrlen() in the middle of 水 while in initial shift state returns -1

[Bearbeiten] Siehe auch

wandelt die nächsten Multibyte Zeichen-Zeichen, gegebenen Zustand
Original:
converts the next multibyte character to wide character, given state
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(Funktion) [edit]
gibt die Anzahl der Bytes in den nächsten Multibyte-Zeichens
Original:
returns the number of bytes in the next multibyte character
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(Funktion) [edit]
[virtuell]
berechnet die Länge der Zeichenfolge, externT durch Umwandlung in gegebenen Internt Puffer verbraucht würde
Original:
calculates the length of the externT string that would be consumed by conversion into given internT buffer
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(virtuellen geschützten Member-Funktion of std::codecvt) [edit]
C documentation for mbrlen