Espaços nominais
Variantes
Acções

std::mbrlen

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

 
 
Biblioteca cordas
Strings terminadas
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.
Cadeias de bytes
Multibyte cordas
Cordas de largura
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.
 
Strings terminadas multibyte
Wide / multibyte conversões
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.
Tipos
Original:
Types
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
 
Definido no cabeçalho <cwchar>
std::size_t mbrlen( const char* s, std::size_t n, std::mbstate_t* ps);
Determina o tamanho, em bytes, do restante do caractere multibyte cujo primeiro byte é apontado por s, dado o estado de conversão atual 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.
Esta função é equivalente à std::mbrtowc(nullptr, s, n, ps?ps:&internal) chamada para internal objeto escondido de std::mbstate_t tipo, exceto que o ps expressão é avaliada apenas uma vez.
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.

Índice

[editar] Parâmetros

s -
ponteiro para um elemento de uma cadeia de caracteres multibyte
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 -
limitar o número de bytes em s que podem ser examinados
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 -
ponteiro para a variável que contém o estado de conversão
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.

[editar] Valor de retorno

0 se o n seguinte ou menos bytes completar o caractere nulo.
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.
O número de bytes (entre 1 e n) que completam um caractere multibyte válido
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 se ocorre erro de codificação
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 se os bytes n próximos são parte de um caractere multibyte possivelmente válidos, que ainda está incompleta depois de examinar todos os bytes n
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.

[editar] Exemplo

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

Saída:

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

[editar] Veja também

converte o caractere multibyte ao lado de caráter amplo, determinado estado
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.

(função) [edit]
retorna o número de bytes no caractere multibyte seguinte
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.

(função) [edit]
[virtual]
calcula o comprimento da corda externT que seria consumida por conversão em tampão internt dado
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.

(virtual protegido of std::codecvt função de membro) [edit]
Documentação C para mbrlen