C ++ strcoll () - C ++ Standard Βιβλιοθήκη

Η συνάρτηση strcoll () στο C ++ συγκρίνει δύο μηδενικές συμβολοσειρές τερματισμού. Η σύγκριση βασίζεται στις τρέχουσες τοπικές ρυθμίσεις που ορίζονται από την κατηγορία LC_COLLATE.

Το strcmp () είναι αρκετό για τις περισσότερες συγκρίσεις συμβολοσειρών, αλλά όταν ασχολείστε με χαρακτήρες unicode, μερικές φορές υπάρχουν ορισμένες αποχρώσεις που κάνουν τη σύγκριση συμβολοσειρών by-to-byte εσφαλμένη.

Για παράδειγμα, εάν συγκρίνετε δύο χορδές στην ισπανική γλώσσα, μπορούν να περιέχουν τονισμένους χαρακτήρες όπως á, é, í, ó, ú, ü, ñ, ¿, ¡κ.λπ.

Από προεπιλογή, αυτοί οι τονισμένοι χαρακτήρες έρχονται μετά από ολόκληρο το αλφάβητο των a, b, c… z. Μια τέτοια σύγκριση θα ήταν ελαττωματική, διότι οι διαφορετικές πινελιές του α θα έπρεπε πραγματικά να προηγούνται β.

Το strcoll () χρησιμοποιεί την τρέχουσα τοπική ρύθμιση για να πραγματοποιήσει τη σύγκριση δίνοντας ένα πιο ακριβές αποτέλεσμα σε τέτοιες περιπτώσεις.

Ορίζεται στο αρχείο κεφαλίδας.

πρωτότυπο strcoll ()

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

Η συνάρτηση strcoll () παίρνει δύο ορίσματα: lhs και rhs. Συγκρίνει το περιεχόμενο των lhs και rhs με βάση τις τρέχουσες τοπικές ρυθμίσεις της κατηγορίας LC_COLLATE.

strcoll () Παράμετροι

  • lhs και rhs: Δείξτε τις συμβολοσειρές που έχουν τερματιστεί με το μηδέν.

strcoll () Τιμή επιστροφής

Η συνάρτηση strcoll () επιστρέφει:

  • θετική τιμή εάν ο πρώτος διαφορετικός χαρακτήρας σε lhs είναι μεγαλύτερος από τον αντίστοιχο χαρακτήρα σε rhs.
  • αρνητική τιμή εάν ο πρώτος διαφορετικός χαρακτήρας σε lhs είναι μικρότερος από τον αντίστοιχο χαρακτήρα σε rhs.
  • 0 εάν τα lhs και rhs είναι ίδια.

Παράδειγμα: Πώς λειτουργεί η λειτουργία strcoll ();

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

Όταν εκτελείτε το πρόγραμμα, η έξοδος θα είναι:

 Στην τρέχουσα τοποθεσία, ο Άρμστρονγκ προηγείται του Στρατού

ενδιαφέροντα άρθρα...