C ++ wctomb () - Стандартная библиотека C ++

Функция 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 многобайтовый символ:

Интересные статьи...