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

Функція wcsxfrm () в C ++ перетворює заданий нульовий кінець широкий рядок у форму, визначену реалізацією.

Функція wcsxfrm () перетворює широкий рядок таким чином, що порівняння двох перетворених широких рядків за допомогою функції wcscmp () дає ідентичний результат, як порівняння вихідних широких рядків за допомогою функції wcscoll () у поточній мові C.

Наприклад, x і y - це два широкі рядки. a і b - два широкі рядки, утворені перетворенням x і y відповідно за допомогою функції wcsxfrm.

Тоді,

 wcscmp (a, b) = wcscoll (x, y)

Це визначається у файлі заголовка.

прототип wcsxfrm ()

 size_t wcsxfrm (wchar_t * dest, const wchar_t * src, count_t count);

Функція wcsxfrm () перетворює перші лічильники широкого рядка широкого рядка, на який вказує src, у форму, визначену реалізацією, і результат зберігається в місці пам'яті, на яке вказує dest.

Поведінка цієї функції не визначено, якщо:

  • розмір дес менше необхідного розміру.
  • dest та src перекриваються.

wcsxfrm () Параметри

  • dest: вказівник на масив, де зберігається перетворений широкий рядок.
  • src: вказівник на нульовий закінчений широкий рядок, який потрібно перетворити.
  • count: максимальна кількість широких символів для перетворення.

wcsxfrm () Повернене значення

Функція wcsxfrm () повертає кількість перетворених широких символів, за винятком закінчувального нульового широкого символу L ' 0'.

Приклад: Як працює функція wcsxfrm ()?

 #include #include #include using namespace std; int main() ( setlocale(LC_COLLATE, "cs_CZ.UTF-8"); const wchar_t* s1 = L"u0068u0072u006eu0065u0063"; const wchar_t* s2 = L"u0063u0068u0072u0074"; wchar_t t1(20), t2(20); cout << "wcscoll returned " << wcscoll(s1,s2) << endl; cout << "Before transformation, " << "wcscmp returned " << wcscmp(s1,s2) << endl; wcsxfrm(t1,s1,10); wcsxfrm(t2,s2,10); cout << "After transformation, " << "wcscmp returned " << wcscmp(t1,t2) << endl; return 0; )

Коли ви запускаєте програму, результат буде:

 wcscoll повернув -1 До перетворення wcscmp повернув 1 Після перетворення wcscmp повернув -1

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