Funkcija mbrtoc32 () C ++ pārveido šauru daudzbaitu rakstzīmi par 32 bitu rakstzīmju attēlojumu.
Funkcija mbrtoc32 () ir definēta galvenes failā.
mbrtoc32 () prototips
size_t mbrtoc32 (char32_t * pc32, const char * s, size_t n, mbstate_t * ps);
Funkcija mbrtoc32 () pārveido ne vairāk kā n multibaitu rakstzīmi, ko apzīmē s, par ekvivalentu utf-32 rakstzīmi un saglabā to atmiņas vietā, uz kuru norāda pc32.
Ja s apzīmē nulles rādītāju, n un pc32 vērtības tiek ignorētas, un izsaukums uz ir ekvivalents mbrtoc32(NULL, "", 1, ps)
.
Ja iegūtais rakstzīme ir nulle, konversijas stāvoklis * ps apzīmē sākotnējo nobīdes stāvokli.
mbrtoc32 () parametri
- pc32: rādītājs uz atmiņas vietu, lai saglabātu iegūto 32 bitu rakstzīmi.
- s: rādītājs, lai pārveidotu daudzbaitu rakstzīmi.
- n: maksimālais konvertējamo baitu skaits s.
- ps: rādītājs objektam mbstate_t, ko izmanto, interpretējot daudzbaitu virkni.
mbrtoc32 () Atgriežamā vērtība
Funkcija mbrtoc32 () atgriež pirmo no šīm vērtībām, kas atbilst tālāk minētajiem gadījumiem:
- 0, ja konvertētais raksturs ir nulles raksturs.
- veiksmīgi pārvērstā 32 bitu rakstā daudzbaitu rakstzīmju baitu skaits (ne vairāk kā n).
- -3, ja nākamais
char32_t
no multi-char32_t rakstzīmes (piem., Aizstājēja pāra) tagad ir rakstīts uz * pc32. Šajā gadījumā no ievades netiek apstrādāti neviens baits. - -2, ja nākamie n baiti veido nepilnīgu, bet līdz šim derīgu daudzbaitu rakstzīmi. Šajā gadījumā nekas netiek rakstīts uz * pc32.
- -1, ja rodas kodēšanas kļūda. Šajā gadījumā nekas netiek rakstīts uz * pc32, errno ir iestatīts uz EILSEQ, un * ps vērtība nav norādīta.
Piemērs: Kā darbojas funkcija mbrtoc32 ()?
#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; )
Palaidot programmu, izeja būs:
Daudzbaitu virkne = x Garums = 1 32 bitu raksturs = 0x00000078