C ++ strxfrm () - Standardna knjižnica C ++

Funkcija strxfrm () v jeziku C ++ pretvori dani ničelno zaključen bajtni niz v obliko, določeno z izvedbo.

Funkcija strxfrm () pretvori niz tako, da primerjava dveh preoblikovanih nizov s funkcijo strcmp () ustvari enak rezultat kot primerjava izvirnih nizov s funkcijo strcoll () v trenutnem jeziku C

Na primer, x in y sta dva niza. a in b sta dva niza, tvorjena s pretvorbo x oziroma y s funkcijo strxfrm. Potem je klic strcmp (a, b) enak klicu strcoll (x, y).

prototip strxfrm ()

 size_t strxfrm (char * dest, const char * src, size_t count);

Funkcija strxfrm () pretvori prve števske znake niza, na katerega kaže src, v obliko, določeno z izvedbo, rezultat pa se shrani na mesto pomnilnika, na katerega kaže dest.

Obnašanje te funkcije ni določeno, če:

  • velikost dest je manjša od zahtevane velikosti.
  • dest in src se prekrivata.

Določen je v datoteki glave "> datoteka glave.

strxfrm () Parametri

  • dest: kazalec na matriko, kjer je shranjen preoblikovani niz.
  • src: kazalec na ničelno zaključen niz, ki se pretvori.
  • count: največje število znakov za pretvorbo.

strxfrm () Vrnjena vrednost

Funkcija strxfrm () vrne število transformiranih znakov, razen končnega ničelnega znaka ' 0'.

Primer: Kako deluje 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; )

Ko zaženete program, bo rezultat:

 strcoll vrnil -1 Pred preoblikovanjem je strcmp vrnil 1 Po preoblikovanju je strcmp vrnil -1

Zanimive Članki...