C ++ mbrlen () - Biblioteca estándar de C ++

La función mbrlen () en C ++ determina el tamaño en bytes de un carácter multibyte.

La función mbrlen () se define en el archivo de encabezado.

prototipo mbrlen ()

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

La función mbrlen () examina la cadena cuyo primer byte apunta s y determina su tamaño en bytes para el estado de conversión actual ps. Se examinan como máximo n bytes en s.

Parámetros de mbrlen ()

  • s: puntero al primer byte de la cadena multibyte para examinar.
  • n: Número máximo de bytes en s para examinar.
  • ps: puntero al objeto mbstate_t que define un estado de conversión.

mbrlen () Valor de retorno

La función mbrlen () devuelve:

  • El número de bytes que completan un carácter multibyte válido.
  • 0 si s apunta a un carácter nulo.
  • -1 es un error de codificación.
  • -2 si los siguientes n bytes no representan un carácter multibyte completo.

Ejemplo: ¿Cómo funciona la función 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; )

Cuando ejecute el programa, la salida será:

 Los siguientes 1 byte (s) no representan un carácter multibyte completo Los siguientes 5 bytes de µ contienen 2 bytes de caracteres multibyte

Articulos interesantes...