C ++ strxfrm () - C ++ standardna biblioteka

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

Zanimljivi članci...