C ++ strxfrm () - C ++ standaardbibliotheek

De functie strxfrm () in C ++ transformeert een gegeven null-beëindigde bytestring in een door de implementatie gedefinieerde vorm.

De functie strxfrm () transformeert de tekenreeks zodanig dat het vergelijken van twee getransformeerde tekenreeksen met de functie strcmp () hetzelfde resultaat oplevert als het vergelijken van de originele tekenreeksen met de functie strcoll () in de huidige C-landinstelling.

X en y zijn bijvoorbeeld twee tekenreeksen. a en b zijn twee strings die worden gevormd door respectievelijk x en y te transformeren met de functie strxfrm. Dan is een aanroep naar strcmp (a, b) hetzelfde als het aanroepen van strcoll (x, y).

strxfrm () prototype

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

De functie strxfrm () converteert de eerste telkarakters van de string waarnaar wordt verwezen door src naar een door de implementatie gedefinieerde vorm en het resultaat wordt opgeslagen in de geheugenlocatie waarnaar verwezen wordt door dest.

Het gedrag van deze functie is niet gedefinieerd als:

  • grootte van bestemming is kleiner dan de vereiste grootte.
  • dest en src overlappen elkaar.

Het wordt gedefinieerd in header-bestand "> header-bestand.

strxfrm () Parameters

  • dest: pointer naar de array waar de getransformeerde string is opgeslagen.
  • src: pointer naar de met null beëindigde string die moet worden getransformeerd.
  • count: maximaal aantal tekens om te converteren.

strxfrm () Retourwaarde

De functie strxfrm () geeft het aantal getransformeerde tekens terug, exclusief het afsluitende null-teken ' 0'.

Voorbeeld: hoe werkt de functie 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; )

Wanneer u het programma uitvoert, is de uitvoer:

 strcoll geretourneerd -1 Voor transformatie, strcmp geretourneerd 1 Na transformatie, strcmp geretourneerd -1

Interessante artikelen...