C ++ strcoll () - Bibliothèque standard C ++

La fonction strcoll () en C ++ compare deux chaînes de terminaison nulles. La comparaison est basée sur les paramètres régionaux actuels définis par la catégorie LC_COLLATE.

strcmp () est suffisant pour la plupart des comparaisons de chaînes, mais lorsqu'il s'agit de caractères unicode, il y a parfois certaines nuances qui rendent la comparaison de chaînes d'octet à octet incorrecte.

Par exemple, si vous comparez deux chaînes en espagnol, elles peuvent contenir des caractères accentués comme á, é, í, ó, ú, ü, ñ, ¿, ¡etc.

Par défaut, ces caractères accentués viennent après tout l'alphabet de a, b, c… z. Une telle comparaison serait erronée car les différents accents de a devraient en fait précéder b.

strcoll () utilise les paramètres régionaux actuels pour effectuer la comparaison donnant un résultat plus précis dans de tels cas.

Il est défini dans le fichier d'en-tête.

prototype strcoll ()

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

La fonction strcoll () prend deux arguments: lhs et rhs. Il compare le contenu de lhs et rhs en fonction de la locale actuelle de la catégorie LC_COLLATE.

Paramètres de strcoll ()

  • lhs et rhs: pointeur vers les chaînes terminées nulles à comparer.

strcoll () Valeur de retour

La fonction strcoll () renvoie un:

  • valeur positive si le premier caractère différent de lhs est supérieur au caractère correspondant de rhs.
  • valeur négative si le premier caractère différent de lhs est inférieur au caractère correspondant de rhs.
  • 0 si lhs et rhs sont égaux.

Exemple: comment fonctionne la fonction 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; )

Lorsque vous exécutez le programme, la sortie sera:

 Dans la localité actuelle, Armstrong précède l'armée

Articles intéressants...