Функция 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 @