Функция wctomb () в C ++ преобразует широкий символ в многобайтовый символ.
Функция wctomb () определена в заголовочном файле.
wctomb () прототип
int wctomb (char * pmb, wchar_t wc);
Функция wctomb () принимает два аргумента и возвращает целочисленное значение. Эта функция преобразует широкий символ, представленный wc, в его многобайтовый эквивалент и сохраняется в ячейке памяти, указанной pmb. Максимальное количество символов, которое можно сохранить, - MB_CUR_MAX .
Если wc является нулевым символом, нулевой байт записывается в pmb.
Если pmb является нулевым указателем, вызов wctomb () сбрасывает состояние глобального преобразования и определяет, используются ли последовательности сдвига.
Параметры wctomb ()
- pmb: указатель на получившийся многобайтовый символ
- wc: широкий символ, преобразованный в многобайтовый символ
wctomb () Возвращаемое значение
Если pmb не является нулевым указателем, wctomb () возвращает:
- количество байтов, содержащихся в многобайтовом представлении wc.
- -1, если wc не является допустимым символом.
Если pmb является нулевым указателем, сбрасывает свое внутреннее состояние преобразования для представления начального состояния сдвига и возвращает:
- 0, если текущая многобайтовая кодировка не зависит от состояния (не использует последовательности сдвига)
- ненулевое значение, если текущая многобайтовая кодировка зависит от состояния (использует последовательности сдвига).
Пример: как работает функция wctomb ()?
#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); )
Когда вы запустите программу, возможный результат будет:
Если pmb не равно нулю, возвращаемое значение = 1 многобайтовый символ: x↨R Если pmb имеет значение null, возвращаемое значение = 0 многобайтовый символ: