C ++ mbstowcs () - Стандартна бібліотека C ++

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

Цікаві статті...