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

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

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