Namespaces
Variants

mbsinit

From cppreference.net
Definido en el encabezado <wchar.h>
int mbsinit ( const mbstate_t * ps ) ;
(desde C95)

Si ps no es un puntero nulo, la función mbsinit determina si el objeto mbstate_t apuntado describe el estado de conversión inicial.

Contenidos

Notas

Aunque un mbstate_t inicializado a cero siempre representa el estado de conversión inicial, puede haber otros valores de mbstate_t que también representen el estado de conversión inicial.

Parámetros

ps - puntero al objeto mbstate_t a examinar

Valor de retorno

0 si ps no es un puntero nulo y no representa el estado de conversión inicial, valor distinto de cero en caso contrario.

Ejemplo

#include <locale.h>
#include <string.h>
#include <stdio.h>
#include <wchar.h>
int main(void)
{
    // permitir que mbrlen() funcione con codificación multibyte UTF-8
    setlocale(LC_ALL, "en_US.utf8");
    // codificación multibyte estrecha UTF-8
    const char* str = u8"水"; // or u8"\u6c34" or "\xe6\xb0\xb4"
    static mbstate_t mb; // inicializado a cero
    (void)mbrlen(&str[0], 1, &mb);
    if (!mbsinit(&mb)) {
        printf("Después de procesar el primer byte de %s,\n"
               "el estado de conversión no es inicial\n\n", str);
    }
    (void)mbrlen(&str[1], strlen(str), &mb);
    if (mbsinit(&mb)) {
        printf("Después de procesar los 2 bytes restantes de %s,\n"
               "el estado de conversión es el estado de conversión inicial\n", str);
    }
}

Salida:

Después de procesar el primer byte de 水,
el estado de conversión no es inicial
Después de procesar los 2 bytes restantes de 水,
el estado de conversión es el estado de conversión inicial

Referencias

  • Estándar C17 (ISO/IEC 9899:2018):
  • 7.29.6.2.1 La función mbsinit (p: 322)
  • Estándar C11 (ISO/IEC 9899:2011):
  • 7.29.6.2.1 La función mbsinit (p: 441-442)
  • Estándar C99 (ISO/IEC 9899:1999):
  • 7.24.6.2.1 La función mbsinit (p: 387-388)

Véase también

información de estado de conversión necesaria para iterar cadenas de caracteres multibyte
(clase)