Strxfrm () -funktionen i C ++ förvandlar en given null-avslutad bytesträng till en implementeringsdefinierad form.
Funktionen strxfrm () transformerar strängen så att jämförelse av två transformerade strängar med hjälp av strcmp () -funktionen ger identiskt resultat som att jämföra de ursprungliga strängarna med strcoll () -funktionen i det aktuella C-området.
Till exempel är x och y två strängar. a och b är två strängar bildade genom att transformera x respektive y med användning av strxfrm-funktionen. Då är ett samtal till strcmp (a, b) samma som att ringa strcoll (x, y).
strxfrm () prototyp
size_t strxfrm (char * dest, const char * src, size_t count);
Strxfrm () -funktionen konverterar de första räknetecknen i strängen som pekas på av src till en implementeringsdefinierad form och resultatet lagras på minnesplatsen som dest.
Funktionen för denna funktion är odefinierad om:
- storleken på dest är mindre än den önskade storleken.
- dest och src överlappar varandra.
Det definieras i rubrikfil "> rubrikfil.
strxfrm () Parametrar
- dest: pekare till matrisen där den transformerade strängen lagras.
- src: pekare till den null-avslutade strängen som ska transformeras.
- räkna: maximalt antal tecken att konvertera.
strxfrm () Returvärde
Funktionen strxfrm () returnerar antalet transformerade tecken, exklusive det avslutande nollkaraktären ' 0'.
Exempel: Hur fungerar funktionen 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ör programmet blir resultatet:
strcoll returnerade -1 Före transformation returnerade strcmp 1 Efter transformation returnerade strcmp -1