C ++ strxfrm () - C ++ Standardbibliotek

Strxfrm () -funktionen i C ++ omdanner en given nultermineret bytestreng til en implementeringsdefineret form.

Funktionen strxfrm () transformerer strengen således, at sammenligning af to transformerede strenge ved hjælp af strcmp () -funktionen giver det samme resultat som at sammenligne de originale strenge ved hjælp af strcoll () -funktionen i det aktuelle C-sted.

For eksempel er x og y to strenge. a og b er to strenge dannet ved at transformere henholdsvis x og y ved hjælp af strxfrm-funktionen. Derefter er et opkald til strcmp (a, b) det samme som at kalde strcoll (x, y).

strxfrm () prototype

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

Strxfrm () -funktionen konverterer de første optællingstegn i strengen, som src peger på, til en implementeringsdefineret form, og resultatet lagres på den hukommelsesplacering, der peges af dest.

Funktionen for denne funktion er udefineret, hvis:

  • størrelsen på dest er mindre end den krævede størrelse.
  • dest og src overlapper hinanden.

Det er defineret i header-fil "> header-fil.

strxfrm () Parametre

  • dest: pointer til det array, hvor den transformerede streng er gemt.
  • src: markør til den nulterminerede streng, der skal transformeres.
  • count: maksimalt antal tegn, der skal konverteres.

strxfrm () Returværdi

Funktionen strxfrm () returnerer antallet af transformerede tegn eksklusive det afsluttende nultegn ' 0'.

Eksempel: Hvordan fungerer 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; )

Når du kører programmet, vil output være:

 strcoll returneret -1 Før transformation returnerede strcmp 1 Efter transformation returnerede strcmp -1

Interessante artikler...