Strxfrm () -funktio C ++: ssa muuntaa tietyn null-päättyvän tavun merkkijonon toteutuksen määrittelemään muotoon.
Funktio strxfrm () muuntaa merkkijonon siten, että kahden muunnetun merkkijonon vertaaminen käyttämällä strcmp () -funktiota tuottaa saman tuloksen kuin alkuperäisten merkkijonojen vertaaminen käyttämällä strcoll () -funktiota nykyisessä C-kielessä.
Esimerkiksi x ja y ovat kaksi merkkijonoa. a ja b ovat kaksi merkkijonoa, jotka on muodostettu muuntamalla x ja y vastaavasti käyttämällä strxfrm-funktiota. Sitten kutsu strcmp: lle (a, b) on sama kuin kutsuminen strcollille (x, y).
strxfrm () -prototyyppi
size_t strxfrm (char * dest, const char * src, size_t count);
Strxfrm () -funktio muuntaa src: n osoittaman merkkijonon ensimmäiset laskemerkit toteutuksen määrittelemään muotoon ja tulos tallennetaan muistin sijaintiin, johon osoitti.
Tämän toiminnon käyttäytymistä ei ole määritelty, jos:
- destin koko on vaadittua kokoa pienempi.
- dest ja src ovat päällekkäisiä.
Se määritetään otsikkotiedostossa "> header file.
strxfrm () -parametrit
- dest: osoittaa taulukon, johon muunnettu merkkijono on tallennettu.
- src: osoitin muunnettavaan nollapäätteiseen merkkijonoon.
- count: muunnettavien merkkien enimmäismäärä.
strxfrm () Palautusarvo
Funktio strxfrm () palauttaa muunnetun merkin lukumäärän, lukuun ottamatta lopetettavaa nollamerkkiä 0.
Esimerkki: Kuinka funktio strxfrm () toimii?
#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; )
Kun suoritat ohjelmaa, tulos on:
strcoll palasi -1 Ennen muunnosta strcmp palasi 1 Muunnoksen jälkeen strcmp palasi -1