Strxfrm () -funksjonen i C ++ forvandler en gitt null-avsluttet byte-streng til en implementeringsdefinert form.
Funksjonen strxfrm () transformerer strengen slik at sammenligning av to transformerte strenger ved hjelp av strcmp () -funksjonen gir identisk resultat som å sammenligne de originale strengene ved hjelp av strcoll () -funksjonen i gjeldende C-lokalitet.
For eksempel er x og y to strenger. a og b er to strenger dannet ved å transformere henholdsvis x og y ved hjelp av strxfrm-funksjonen. Da er en samtale til strcmp (a, b) det samme som å ringe strcoll (x, y).
strxfrm () prototype
size_t strxfrm (char * dest, const char * src, size_t count);
Strxfrm () -funksjonen konverterer de første telletegnene til strengen pekt av src til en implementeringsdefinert form, og resultatet lagres på minneplasseringen pekt av dest.
Oppførselen til denne funksjonen er udefinert hvis:
- størrelsen på destinasjonen er mindre enn den nødvendige størrelsen.
- dest og src overlapper hverandre.
Den er definert i topptekstfil "> topptekstfil.
strxfrm () Parametere
- dest: peker til matrisen der den transformerte strengen er lagret.
- src: peker til den null avsluttede strengen som skal transformeres.
- count: maksimalt antall tegn å konvertere.
strxfrm () Returverdi
Strxfrm () -funksjonen returnerer antallet transformerte tegn, unntatt det avsluttende nulltegnet ' 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 kjører programmet, vil utdataene være:
strcoll returnerte -1 Før transformasjon returnerte strcmp 1 Etter transformasjon returnerte strcmp -1