C ++ wcrtomb () - C ++ стандартна библиотека

Функцията wcrtomb () в C ++ преобразува широк символ в своето тясно многобайтово представяне.

Wcrtomb () е дефиниран в заглавния файл.

прототип на wcrtomb ()

 size_t wcrtomb (char * s, wchar_t wc, mbstate_t * ps);

Функцията wcrtomb () преобразува широкия символ, представен от wc, в тесен многобайтов символ и се съхранява в адреса, посочен от s.

  • Ако s не е нулев указател, функцията wcrtomb () определя максималния брой байтове, необходими за съхраняване на многобайтовото представяне на wc, и го съхранява в мястото на паметта, посочено от s. Могат да бъдат записани максимум MB_CUR_MAX байта. Стойността на ps се актуализира според изискванията.
  • Ако s е нулев указател, повикването е еквивалентно на wcrtomb(buf, L'', ps)за някакъв вътрешен буфер buf.
  • Ако wc == L''се съхранява нулев байт.

wcrtomb () Параметри

  • s: Показалец към многобайтовия масив от символи, за да съхранява резултата.
  • wc: Широк символ за конвертиране.
  • ps: указател към състоянието на преобразуване, използвано при интерпретиране на многобайтовия низ

wcrtomb () Върната стойност

  • При успех функцията wcrtomb () връща броя байтове, записани в масива от знаци, чийто първи елемент е посочен от s.
  • При неуспех (т.е. wc не е валиден широк знак), той връща -1, errno се задава на EILSEQ и оставя * ps в неуточнено състояние.

Пример: Как работи функцията wcrtomb ()?

 #include #include #include using namespace std; int main() ( setlocale(LC_ALL, "en_US.utf8"); wchar_t str() = L"uu00c6u00f5u01b5"; char s(16); int retVal; mbstate_t ps = mbstate_t(); for (int i=0; i 

When you run the program, the output will be:

 Size of u is 1 bytes Size of Æ is 2 bytes Size of õ is 2 bytes Size of Ƶ is 2 bytes

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