Функцията mbtowc () в C ++ преобразува многобайтов символ в широк символ.
Функцията mbtwoc () е дефинирана в заглавния файл.
mbtowc () прототип
int mbtowc (wchar_t * pwc, const char * pmb, size_t max);
Функцията mbtowc () взема три аргумента и връща цяла стойност. Тази функция преобразува многобайтовия символ, посочен от pmb, в широк символ (стойност от тип wchar_t) и се съхранява в мястото на паметта, посочено от pwc.
Ако pmb е нулев указател, извикване на mbtowc () ще нулира глобалното състояние на преобразуване и ще определи дали се използват последователности на смени.
mbtowc () Параметри
- pwc: Показалец към получения широк символ
- pmb: указател към многобайтовия знак, който се преобразува в широк символ
- max: Максимален размер в байтове pmb, който да се вземе предвид за многобайтовия символ.
mbtowc () Върната стойност
Ако pmb не е нулев указател, mbtowc () връща:
- броя на байтовете, които се съдържат в многобайтовия знак, посочен от pmb.
- -1 ако първият байт, посочен от pmb, не образува валиден многобайт знак.
- 0, ако pmb сочи към завършващия нулев символ, т.е. ' 0'.
Ако pmb е нулев указател, нулира вътрешното си състояние на преобразуване, за да представи първоначалното състояние на изместване и връща:
- 0, ако текущото многобайтово кодиране не зависи от състоянието (не използва последователности на смяна)
- ненулева стойност, ако текущото многобайтово кодиране зависи от състоянието (използва последователности на смяна).
Пример: Как работи функцията mbtowc ()?
#include #include #include using namespace std; int main() ( char pmb() = "Welcome to Programiz.com"; wchar_t pwc(100); int len, ret_val; /* resets internal conversion state */ mbtowc (NULL, NULL, 0); len = strlen(pmb); ret_val = mbtowc(pwc, pmb, strlen(pmb)); cout << "Return Value = " << ret_val << endl; wcout << "Wide character string: " << pwc; return(0); )
Когато стартирате програмата, възможният изход ще бъде:
Върната стойност = 1 Широк символен низ: W @