C ++ mbstowcs () - C ++ standardna biblioteka

Funkcija mbstowcs () u C ++ pretvara višebajtni niz znakova u ekvivalentnu široku sekvencu znakova.

Funkcija mbstowcs () definirana je u datoteci zaglavlja.

prototip mbstowcs ()

 size_t mbstowcs (wchar_t * dest, const char * src, size_t max);

Funkcija mbstowcs () uzima tri argumenta i vraća cjelobrojnu vrijednost.

Ova funkcija pretvara višebajtni niz znakova čiji je prvi element src usmjeren u njegov široki prikaz karaktera (vrijednost tipa wchar_t).

Rezultat je pohranjen na memorijskom mjestu koje pokazuje dest. Parametar max predstavlja maksimalni broj multibajtnih znakova koji se trebaju pretvoriti.

Mehanizam pretvorbe jednak je mehanizmu pretvorbe mbtowc (), osim što to ne utječe na stanje pretvorbe mbtowc. Pretvorba se zaustavlja ako:

  • Nailazi se na nulti znak koji se zatim pretvara i pohranjuje.
  • Naišao je na nevažeći višebajtni znak.
  • pretvoren je maksimalan broj višebajtnih znakova.

mbstowcs () parametri

  • dest: Pokazivač na rezultirajući široki niz znakova.
  • src: pokazivač na prvi element višebajtnog znaka koji se pretvara u široki znak.
  • max: maksimalan broj multibajtnih znakova koji se pretvaraju.

mbstowcs () Povratna vrijednost

  • Ako je pretvorba uspješna, mbstowcs () vraća broj širokih znakova, isključujući završni znak (tj. ' 0') koji je zapisan u odredišni niz.
  • Ako se tijekom pretvorbe dogodi bilo kakva pogreška, vraća -1.

Primjer: Kako funkcionira funkcija mbstowcs ()?

 #include #include using namespace std; int main() ( char src() = "xc4xe3xbaxc3"; wchar_t dest(10); int num; num = mbstowcs(dest, src, MB_CUR_MAX); cout << "Number of wide character converted = " << num << endl; wcout << "Wide Character String = " << dest << endl; return 0; )

Kada pokrenete program, mogući izlaz bit će:

 Broj pretvorenih širokih znakova = 1 niz širokih znakova = ─

Zanimljivi članci...