C ++ strxfrm () - štandardná knižnica C ++

Funkcia strxfrm () v C ++ transformuje daný bajtový reťazec ukončený nulou do formy definovanej implementáciou.

Funkcia strxfrm () transformuje reťazec tak, že porovnanie dvoch transformovaných reťazcov pomocou funkcie strcmp () vedie k rovnakému výsledku ako porovnanie pôvodných reťazcov pomocou funkcie strcoll () v aktuálnom miestnom prostredí C.

Napríklad x a y sú dva reťazce. a a b sú dva reťazce vytvorené transformáciou x a y pomocou funkcie strxfrm. Potom je volanie strcmp (a, b) rovnaké ako volanie strcoll (x, y).

prototyp strxfrm ()

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

Funkcia strxfrm () prevádza prvé počítané znaky reťazca, na ktoré odkazuje src, do formy definovanej implementáciou a výsledok sa uloží do pamäte, na ktoré ukazuje cieľ.

Správanie tejto funkcie nie je definované, ak:

  • veľkosť cieľa je menšia ako požadovaná veľkosť.
  • prekrývajú sa ciele dest a src.

Je definované v hlavičkovom súbore.

parametre strxfrm ()

  • cieľ: ukazovateľ na pole, kde je uložený transformovaný reťazec.
  • src: ukazovateľ na null zakončený reťazec, ktorý sa má transformovať.
  • počet: maximálny počet znakov, ktoré sa majú previesť.

strxfrm () Vrátená hodnota

Funkcia strxfrm () vracia počet transformovaných znakov s výnimkou ukončovacieho nulového znaku „ 0“.

Príklad: Ako funguje funkcia 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; )

Po spustení programu bude výstup:

 strcoll vrátil -1 Pred transformáciou vrátil strcmp 1 Po transformácii vrátil strcmp -1

Zaujímavé články...