C ++ mbrlen () - Стандартная библиотека C ++

Функция mbrlen () в C ++ определяет размер в байтах многобайтового символа.

Функция mbrlen () определена в заголовочном файле.

mbrlen () прототип

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

Функция mbrlen () проверяет строку, на первый байт которой указывает s, и определяет ее размер в байтах для текущего состояния преобразования ps. Проверяется не более n байтов в s.

Параметры mbrlen ()

  • s: указатель на первый байт многобайтовой строки для проверки.
  • n: Максимальное количество байтов в s для проверки.
  • ps: указатель на объект mbstate_t, который определяет состояние преобразования.

mbrlen () Возвращаемое значение

Функция mbrlen () возвращает:

  • Число байтов, завершающих допустимый многобайтовый символ.
  • 0, если s указывает на нулевой символ.
  • -1 - ошибка кодирования.
  • -2, если следующие 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; )

Когда вы запустите программу, вывод будет:

 Следующий 1 байт (-а) не представляет собой полный многобайтовый символ Следующие 5 байтов (-ов) из µ содержат 2 байта многобайтового символа

Интересные статьи...