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