C ++ mbrtoc32 () - C ++ standardraamatukogu

Funktsioon mbrtoc32 () funktsioonis C ++ teisendab kitsa mitmebaidise märgi 32-bitiseks tähemärgiks.

Funktsioon mbrtoc32 () on määratletud päisefailis.

mbrtoc32 () prototüüp

 size_t mbrtoc32 (char32_t * pc32, const char * s, size_t n, mbstate_t * ps);

Funktsioon mbrtoc32 () teisendab maksimaalselt n s-ga tähistatud mitmebaidist tähemärki samaväärseks utf-32 tähemärgiks ja salvestab selle mäluasendisse, millele osutab pc32.

Kui s tähistab nullkursorit, ignoreeritakse n ja pc32 väärtusi ja kõne aadressile on samaväärne mbrtoc32(NULL, "", 1, ps).

Kui saadud tähemärk on null, tähistab teisenduse olek * ps algset nihkeolekut.

mbrtoc32 () parameetrid

  • pc32: kursor mälu asukohta, et salvestada saadud 32-bitine märk.
  • s: kursor mitmebaidise tähe teisendamiseks.
  • n: teisendatavate baitide maksimaalne arv sekundites.
  • ps: osuti mbstate_t objektile, mida kasutatakse mitmebaidise stringi tõlgendamisel.

mbrtoc32 () Tagastusväärtus

Funktsioon mbrtoc32 () tagastab esimese järgmise väärtuse, mis vastab järgmistele juhtumitele:

  • 0, kui teisendatud märk on nullmärk.
  • edukalt 32-bitiseks tähiseks muudetud mitmebaidise märgi baitide arv (maksimaalselt n).
  • -3, kui char32_tmulti-char32_t sümbolist järgmine (nt asenduspaar) on nüüd kirjutatud * pc32. Sellisel juhul ei töödelda sisendist ühtegi baiti.
  • -2, kui järgmised n baiti moodustavad mittetäieliku, kuid seni kehtiva mitmebaidise tähemärgi. Sel juhul ei kirjutata * pc32-le midagi.
  • -1, kui ilmneb kodeerimisviga. Sel juhul ei kirjutata * pc32-le midagi, errno väärtuseks määratakse EILSEQ ja * ps väärtus pole täpsustatud.

Näide: Kuidas funktsioon mbrtoc32 () töötab?

 #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; )

Programmi käivitamisel on väljund järgmine:

 Mitmebaidine string = x Pikkus = 1 32-bitine märk = 0x00000078

Huvitavad Artiklid...