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

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

Функцията mbstowcs () е дефинирана в заглавния файл.

mbstowcs () прототип

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

Функцията mbstowcs () взема три аргумента и връща цяла стойност.

Тази функция преобразува многобайтовия символен низ, чийто първи елемент е посочен от src, в неговото широко представяне на символ (стойност на типа wchar_t).

Резултатът се съхранява на мястото на паметта, посочено от dest. Параметърът max представлява максималният брой многобайтови знаци, които трябва да бъдат преобразувани.

Механизмът на преобразуване е същият като този на mbtowc (), с изключение на това, че състоянието на преобразуване mbtowc не е засегнато. Преобразуването спира, ако:

  • Среща се нулев знак, който след това се преобразува и съхранява.
  • Възниква невалиден многобайтов символ.
  • конвертиран е максимален брой многобайтови знаци.

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

  • dest: Указател към получения широк масив от символи.
  • src: Показалец към първия елемент на многобайтовия знак, който се преобразува в широк символ.
  • max: Максимален брой многобайтови знаци, които трябва да бъдат преобразувани.

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

  • Ако преобразуването е успешно, mbstowcs () връща броя на широките символи, с изключение на завършващия знак (т.е. ' 0'), който е записан в целевия масив.
  • Ако по време на преобразуването възникне грешка, тя връща -1.

Пример: Как работи функцията 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; )

Когато стартирате програмата, възможният изход ще бъде:

 Брой преобразувани широки символи = 1 Широк символен низ = ─

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