Функція 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 Широкий рядок символів = ─