Функцията 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 Широк символен низ = ─