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 байта многобайтов символ

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