C ++ strxfrm () - C ++ standartinė biblioteka

Strxfrm () funkcija C ++ paverčia nurodytą nulinės pabaigos baitų eilutę įgyvendinimo apibrėžta forma.

Funkcija strxfrm () transformuoja eilutę taip, kad lyginant dvi transformuotas eilutes naudojant strcmp () funkciją gaunamas toks pats rezultatas, kaip lyginant originalias eilutes naudojant funkciją strcoll () dabartinėje C lokalėje.

Pavyzdžiui, x ir y yra dvi eilutės. a ir b yra dvi eilutės, suformuotos transformuojant x ir y atitinkamai naudojant strxfrm funkciją. Tada skambutis į strcmp (a, b) yra tas pats, kas skambinti strcoll (x, y).

strxfrm () prototipas

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

Funkcija strxfrm () paverčia pirmuosius eilutės, į kurią nukreipia src, skaičiavimo simbolius į įgyvendinimo apibrėžtą formą, o rezultatas saugomas atminties vietoje, į kurią nukreipia dest.

Šios funkcijos elgesys nėra apibrėžtas, jei:

  • dest dydis yra mažesnis nei reikalaujamas dydis.
  • dest ir src sutampa.

Tai apibrėžiama antraštės faile "> header file.

strxfrm () parametrai

  • dest: rodyklė į masyvą, kuriame saugoma transformuota eilutė.
  • src: rodyklė į transformuojamą nulinės pabaigos eilutę.
  • skaičius: maksimalus konvertuojamų simbolių skaičius.

strxfrm () Grąžinimo vertė

Funkcija strxfrm () pateikia transformuoto simbolio skaičių, išskyrus baigiamąjį nulinį simbolį „ 0“.

Pavyzdys: Kaip veikia strxfrm () funkcija?

 #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; )

Kai paleisite programą, išvestis bus:

 strcoll grįžo -1 Prieš transformaciją strcmp grįžo 1 Po transformacijos strcmp grąžino -1

Įdomios straipsniai...