Funkcija strxfrm () u C ++ pretvara dani nule završeni niz bajtova u oblik definiran implementacijom.
Funkcija strxfrm () transformira niz tako da usporedba dva transformirana niza pomoću funkcije strcmp () daje identičan rezultat kao usporedba izvornih nizova pomoću funkcije strcoll () u trenutnom C lokalitetu.
Na primjer, x i y su dva niza. a i b su dva niza nastala transformiranjem x odnosno y pomoću funkcije strxfrm. Tada je poziv strcmp (a, b) isti kao i poziv strcoll (x, y).
prototip strxfrm ()
size_t strxfrm (char * dest, const char * src, size_t count);
Funkcija strxfrm () pretvara prve brojeve znakova niza na koji ukazuje src u oblik definiran implementacijom, a rezultat se sprema na memorijsko mjesto na koje ukazuje dest.
Ponašanje ove funkcije nije definirano ako:
- veličina destinacije je manja od potrebne veličine.
- dest i src se preklapaju.
Definirano je u datoteci zaglavlja "> datoteka zaglavlja.
strxfrm () Parametri
- dest: pokazivač na niz u kojem se nalazi transformirani niz.
- src: pokazivač na nulu završeni niz koji će se transformirati.
- count: maksimalan broj znakova za pretvaranje.
strxfrm () Povratna vrijednost
Funkcija strxfrm () vraća broj transformiranih znakova, isključujući krajnji null znak ' 0'.
Primjer: Kako funkcionira funkcija 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; )
Kada pokrenete program, izlaz će biti:
strcoll vratio -1 Prije transformacije, strcmp vratio 1 Nakon transformacije, strcmp je vratio -1