C ++ strcoll () - C ++ standaardbibliotheek

De functie strcoll () in C ++ vergelijkt twee null-afsluitende tekenreeksen. De vergelijking is gebaseerd op de huidige landinstelling die is gedefinieerd door de categorie LC_COLLATE.

strcmp () is voldoende voor de meeste stringvergelijkingen, maar als het om unicode-tekens gaat, zijn er soms bepaalde nuances die de byte-naar-byte-stringvergelijking onjuist maken.

Als u bijvoorbeeld twee strings in de Spaanse taal vergelijkt, kunnen ze tekens met accenten bevatten zoals á, é, í, ó, ú, ü, ñ, ¿, ¡enz.

Standaard komen dergelijke geaccentueerde tekens na het hele alfabet van a, b, c… z. Een dergelijke vergelijking zou niet kloppen omdat de verschillende accenten van a eigenlijk vóór b zouden moeten komen.

strcoll () gebruikt de huidige locale om de vergelijking uit te voeren, wat in dergelijke gevallen een nauwkeuriger resultaat oplevert.

Het wordt gedefinieerd in het header-bestand.

strcoll () prototype

 int strcoll (const char * lhs, const char * rhs);

De functie strcoll () heeft twee argumenten: lhs en rhs. Het vergelijkt de inhoud van lhs en rhs op basis van de huidige locale van de categorie LC_COLLATE.

strcoll () Parameters

  • lhs en rhs: Pointer naar de null-beëindigde strings om te vergelijken.

strcoll () Retourwaarde

De functie strcoll () retourneert een:

  • positieve waarde als het eerste verschillende karakter in lhs groter is dan het corresponderende karakter in rhs.
  • negatieve waarde als het eerste verschillende karakter in lhs kleiner is dan het corresponderende karakter in rhs.
  • 0 als lhs en rhs gelijk zijn.

Voorbeeld: hoe werkt strcoll () functie?

 #include #include using namespace std; int main() ( char lhs() = "Armstrong"; char rhs() = "Army"; int result; result = strcoll(lhs,rhs); cout < 0) cout << rhs << " precedes " << lhs << endl; else if (result < 0) cout << lhs << " precedes " << rhs << endl; else cout << lhs << " and " << rhs << " are same" << endl; return 0; )

Wanneer u het programma uitvoert, is de uitvoer:

 In de huidige omgeving gaat Armstrong het leger voor

Interessante artikelen...