C ++ mbrlen () - Biblioteca padrão C ++

A função mbrlen () em C ++ determina o tamanho em bytes de um caractere multibyte.

A função mbrlen () é definida no arquivo de cabeçalho.

protótipo mbrlen ()

 size_t mbrlen (const char * s, size_t n, mbstate_t * ps);

A função mbrlen () examina a string cujo primeiro byte é apontado por se determina seu tamanho em bytes para o estado de conversão atual ps. No máximo n bytes em s são examinados.

Parâmetros mbrlen ()

  • s: ponteiro para o primeiro byte da string multibyte a ser examinada.
  • n: Número máximo de bytes em s a examinar.
  • ps: Ponteiro para o objeto mbstate_t que define um estado de conversão.

mbrlen () Valor de retorno

A função mbrlen () retorna:

  • O número de bytes que completam um caractere multibyte válido.
  • 0 se s aponta para um caractere nulo.
  • -1 ocorre um erro de codificação.
  • -2 se os próximos n bytes não representarem um caractere multibyte completo.

Exemplo: Como funciona a função mbrlen ()?

 #include #include #include using namespace std; void test_mbrlen(const char *s, size_t n) ( mbstate_t ps = mbstate_t(); int retVal = mbrlen(s, n, &ps); if (retVal == -2) cout << "Next " << n << " byte(s) doesn't represent a complete multibyte character" << endl; else if (retVal == -1) cout << "Next " << n << " byte(s) doesn't represent a valid multibyte character" << endl; else cout << "Next " << n << " byte(s) of " << s << " holds " << retVal << " byof multibyte character" << endl; ) int main() ( setlocale(LC_ALL, "en_US.utf8"); char str() = "u00b5"; test_mbrlen(str, 1); test_mbrlen(str, 5); return 0; )

Quando você executa o programa, a saída será:

 Os próximos 1 byte (s) não representam um caractere multibyte completo. Os próximos 5 bytes de µ contém 2 bytes de caracteres multibyte

Artigos interessantes...