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: M Максимальна кількість байтів у 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 байти багатобайтового символу

Цікаві статті...