Функција мбстовцс () у Ц ++ претвара вишебајтни низ знакова у еквивалентну широку секвенцу знакова.
Функција мбстовцс () је дефинисана у датотеци заглавља.
мбстовцс () прототип
сизе_т мбстовцс (вцхар_т * дест, цонст цхар * срц, сизе_т мак);
Функција мбстовцс () узима три аргумента и враћа целобројну вредност.
Ова функција претвара вишебајтни низ знакова чији је први елемент срц указан у његов широки приказ (вредност типа вцхар_т).
Резултат се чува на меморијској локацији коју показује дест. Параметар мак представља максималан број вишбајтних знакова који треба претворити.
Механизам конверзије је исти као и код мбтовц (), с тим што то не утиче на стање конверзије мбтовц. Конверзија се зауставља ако:
- Наилази се на нулл знак који се затим претвара и чува.
- Нађен је неважећи вишебајтни знак.
- претворен је максималан број вишебајтних знакова.
мбстовцс () параметри
- дест: Показивач на резултирајући широки низ знакова.
- срц: показивач на први елемент вишебајтног карактера који се претвара у широки знак.
- макс .: максималан број вишбајтних знакова који треба претворити.
мбстовцс () Повратна вредност
- Ако је конверзија успела, мбстовцс () враћа број широких знакова, искључујући завршни знак (тј. ' 0') који је записан у одредишни низ.
- Ако се током конверзије догоди нека грешка, она враћа -1.
Пример: Како функционише функција мбстовцс ()?
#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 Широки низ знакова = ─