Функція strxfrm () в C ++ перетворює заданий нульовий рядок байтів у форму, визначену реалізацією.
Функція strxfrm () перетворює рядок таким чином, що порівняння двох перетворених рядків за допомогою функції strcmp () дає ідентичний результат, як порівняння вихідних рядків за допомогою функції strcoll () у поточній мові C.
Наприклад, x і y - це два рядки. a і b - це два рядки, утворені перетворенням x та y відповідно за допомогою функції strxfrm. Тоді виклик strcmp (a, b) такий самий, як виклик strcoll (x, y).
прототип strxfrm ()
size_t strxfrm (char * dest, const char * src, size_t count);
Функція strxfrm () перетворює перші символи підрахунку рядка, на який вказує src, у форму, визначену реалізацією, і результат зберігається в місці пам'яті, на яке вказує dest.
Поведінка цієї функції не визначено, якщо:
- розмір дес менше необхідного розміру.
- dest та src перекриваються.
Це визначається у файлі заголовка "> файл заголовка.
strxfrm () Параметри
- dest: вказівник на масив, де зберігається перетворений рядок.
- src: вказівник на рядок із нульовим завершенням, який потрібно перетворити.
- count: максимальна кількість символів для перетворення.
strxfrm () Повертається значення
Функція strxfrm () повертає кількість перетворених символів, за винятком закінчувального нульового символу ' 0'.
Приклад: Як працює функція strxfrm ()?
#include #include #include using namespace std; int main() ( setlocale(LC_COLLATE, "cs_CZ.UTF-8"); const char* s1 = "hrnec"; const char* s2 = "chrt"; char t1(20), t2(20); cout << "strcoll returned " << strcoll(s1,s2) << endl; cout << "Before transformation, " << "strcmp returned " << strcmp(s1,s2) << endl; strxfrm(t1,s1,10); strxfrm(t2,s2,10); cout << "After transformation, " << "strcmp returned " << strcmp(t1,t2) << endl; return 0; )
Коли ви запускаєте програму, результат буде:
strcoll повернув -1 До перетворення, strcmp повернув 1 Після перетворення strcmp повернув -1