std::mbsinit
De cppreference.com
<metanoindex/>
<tbody> </tbody>| Definido no cabeçalho <cwchar>
|
||
int mbsinit( const std::mbstate_t* ps); |
||
Se
ps não é um ponteiro nulo, a função mbsinit determina se o objeto pontiagudo para std::mbstate_t descreve o estado de conversão inicial. Original:
If
ps is not a null pointer, the mbsinit function determines whether the pointed-to std::mbstate_t object describes the initial conversion state. The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
Notas
Embora um zero inicializado std::mbstate_t sempre representa o estado inicial de conversão, pode haver outros valores de std::mbstate_t que também representam o estado inicial de conversão.
Original:
Although a zero-initialized std::mbstate_t always represents the initial conversion state, there may be other values of std::mbstate_t that also represent the initial conversion state.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
Parâmetros
| ps | - | pointer to the std::mbstate_t object to examine |
Valor de retorno
0 se ps não é um ponteiro nulo e não reporesent o estado de conversão inicial, valor diferente de zero caso contrário.Original:
0 if ps is not a null pointer and does not reporesent the initial conversion state, nonzero value otherwise.The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
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();
(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";
}
}
Saída:
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
