Функцията 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: указател към завършващия с нула низ, който трябва да се трансформира.
- брой: максимален брой знаци за конвертиране.
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