Ц ++ мбртоц32 () - Ц ++ стандардна библиотека

Функција мбртоц32 () у Ц ++ претвара уски вишебајтни карактер у 32-битну представу знакова.

Функција мбртоц32 () је дефинисана у датотеци заглавља.

мбртоц32 () прототип

 сизе_т мбртоц32 (цхар32_т * пц32, цонст цхар * с, сизе_т н, мбстате_т * пс);

Функција мбртоц32 () претвара највише н вишебајтних знакова представљених с у њихов еквивалентни утф-32 знак и чува га на меморијској локацији на коју указује пц32.

Ако с представља нулти показивач, вредности н и пц32 се занемарују и позив на је еквивалентан mbrtoc32(NULL, "", 1, ps).

Ако је резултујући произведени знак нула, стање конверзије * пс представља почетно стање померања.

мбртоц32 () Параметри

  • пц32: Показивач на меморијску локацију за чување резултујућег 32-битног знака.
  • с: Показивач на вишебајтни знак који желите претворити.
  • н: Максималан број бајтова у с за конверзију.
  • пс: Показивач на мбстате_т објекат који се користи приликом тумачења вишебајтног низа.

мбртоц32 () Повратна вредност

Функција мбртоц32 () враћа прву од следећих вредности која се подудара са доњим случајевима:

  • 0 ако је претворени знак нулти знак.
  • број бајтова (највише н) вишебајтног карактера који је успешно претворен у 32-битни знак.
  • -3 ако је следећи char32_tод знака мулти-цхар32_т (нпр. Сурогат пар) сада записан у * пц32. У овом случају се од уноса не обрађују бајтови.
  • -2 ако следећих н бајтова чине непотпуни, али до сада важећи, вишебајтни знак. У овом случају ништа није записано на * пц32.
  • -1 ако дође до грешке у кодирању. У овом случају ништа није записано на * пц32, еррно је постављено на ЕИЛСЕК, а вредност * пс је неодређена.

Пример: Како функционише функција мбртоц32 ()?

 #include #include #include #include using namespace std; int main(void) ( char32_t pc32; char s() = "x" ; mbstate_t ps; int length; length = mbrtoc32(&pc32, s, MB_CUR_MAX, &ps); if (length < 0) ( perror("mbrtoc32() fails to convert"); exit(-1); ) cout << "Multibyte string = " << s << endl; cout << "Length = " << length << endl; printf ("32-bit character = 0x%08hx", pc32); return 0; )

Када покренете програм, излаз ће бити:

 Низ од више бајтова = к Дужина = 1 32-битни знак = 0к00000078

Занимљиви Чланци...