Функција вцтомб () у Ц ++ претвара широки карактер у вишебајтни знак.
Функција вцтомб () је дефинисана у датотеци заглавља.
прототип вцтомб ()
инт вцтомб (цхар * пмб, вцхар_т вц);
Функција вцтомб () узима два аргумента и враћа целу вредност. Ова функција претвара широки карактер представљен вц у његов мултибајтни еквивалент и чува се на меморијској локацији назначеној пмб-ом. Максималан број знакова који се могу сачувати је МБ_ЦУР_МАКС .
Ако је вц нулти знак, нулти бајт се записује у пмб.
Ако је пмб нулти показивач, позив вцтомб () ресетоваће глобално стање конверзије и одређује да ли се користе секвенце померања.
вцтомб () параметри
- пмб: Показивач на резултујући мултибајтни знак
- вц: Широки знак који се претвара у вишебајтни знак
вцтомб () Повратна вредност
Ако пмб није нулл показивач, вцтомб () враћа:
- број бајтова који су садржани у вишбајтном представљању вц.
- -1 ако вц није важећи знак.
Ако је пмб нулл показивач, ресетује своје унутрашње стање конверзије да представља почетно стање померања и враћа:
- 0 ако тренутно вишебајтно кодирање не зависи од стања (не користи секвенце померања)
- вредност која није нула ако је тренутно вишебајтно кодирање зависно од стања (користи секвенце померања).
Пример: Како функционише функција вцтомб ()?
#include #include using namespace std; int main() ( wchar_t wc = L'x'; char *pmb1 = (char*)malloc(sizeof(char)); char *pmb2 = NULL; int ret_val; cout << "When pmb is not null" << endl; ret_val = wctomb(pmb1, wc); cout << "Return Value = " << ret_val << endl; wcout << "Multibyte Character: " << pmb1 << endl << endl; cout << "When pmb is null" << endl; ret_val = wctomb(pmb2, wc); cout << "Return Value = " << ret_val << endl; wcout << "Multibyte Character: " << pmb2; return(0); )
Када покренете програм, могући излаз ће бити:
Када пмб није нула Повратна вредност = 1 вишебајтни знак: к↨Р Када је пмб нула Повратна вредност = 0 вишебајтни знак: