Функция mbstowcs () в C ++ преобразует многобайтовую символьную строку в эквивалентную широкую символьную последовательность.
Функция mbstowcs () определена в заголовочном файле.
mbstowcs () прототип
size_t mbstowcs (wchar_t * dest, const char * src, size_t max);
Функция mbstowcs () принимает три аргумента и возвращает целочисленное значение.
Эта функция преобразует многобайтовую символьную строку, первый элемент которой указан src, в ее представление широкого символа (значение типа wchar_t).
Результат сохраняется в ячейке памяти, указанной dest. Параметр max представляет максимальное количество конвертируемых многобайтовых символов.
Механизм преобразования такой же, как у mbtowc (), за исключением того, что состояние преобразования mbtowc не изменяется. Преобразование прекращается, если:
- Встречается нулевой символ, который затем преобразуется и сохраняется.
- Обнаружен недопустимый многобайтовый символ.
- преобразовано максимальное количество многобайтовых символов.
Параметры mbstowcs ()
- dest: указатель на результирующий массив широких символов.
- src: указатель на первый элемент многобайтового символа, который преобразуется в широкий символ.
- max: Максимальное количество многобайтовых символов для преобразования.
mbstowcs () Возвращаемое значение
- Если преобразование прошло успешно, mbstowcs () возвращает количество широких символов, исключая завершающий символ (то есть ' 0'), которые записываются в целевой массив.
- Если во время преобразования возникает какая-либо ошибка, возвращается -1.
Пример: как работает функция mbstowcs ()?
#include #include using namespace std; int main() ( char src() = "xc4xe3xbaxc3"; wchar_t dest(10); int num; num = mbstowcs(dest, src, MB_CUR_MAX); cout << "Number of wide character converted = " << num << endl; wcout << "Wide Character String = " << dest << endl; return 0; )
Когда вы запустите программу, возможный результат будет:
Количество преобразованных широких символов = 1 строка широких символов = ─