C ++ strcoll () - Perpustakaan Standard C ++

Fungsi strcoll () dalam C ++ membandingkan dua rentetan penamatan nol. Perbandingannya berdasarkan pada lokasi semasa yang ditentukan oleh kategori LC_COLLATE.

strcmp () sudah cukup untuk kebanyakan perbandingan rentetan, tetapi ketika berurusan dengan watak unicode, kadang-kadang ada nuansa tertentu yang menjadikan perbandingan rentetan bait-ke-bait tidak betul.

Contohnya, jika anda membandingkan dua rentetan dalam bahasa Sepanyol, mereka boleh mengandungi watak yang menonjol seperti á, é, í, ó, ú, ü, ñ, ¿, ¡dll.

Secara lalai, watak yang menonjol seperti itu muncul setelah keseluruhan huruf a, b, c… z. Perbandingan seperti itu tidak betul kerana aksen yang berbeza sebenarnya harus ada sebelumnya b.

strcoll () menggunakan bahasa semasa untuk melakukan perbandingan memberikan hasil yang lebih tepat dalam kes seperti itu.

Ia ditakrifkan dalam fail tajuk.

prototaip strcoll ()

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

Fungsi strcoll () mengambil dua argumen: lhs dan rhs. Ia membandingkan kandungan lhs dan rhs berdasarkan lokasi semasa kategori LC_COLLATE.

strcoll () Parameter

  • lhs dan rhs: Pointer ke rentetan yang dihentikan nol untuk dibandingkan.

strcoll () Nilai pulangan

Fungsi strcoll () mengembalikan:

  • nilai positif jika watak yang berbeza pertama dalam lhs lebih besar daripada watak yang sesuai dalam rhs.
  • nilai negatif jika watak berbeza dalam lhs kurang daripada watak yang sesuai dalam rhs.
  • 0 jika lhs dan rhs sama.

Contoh: Bagaimana fungsi strcoll () berfungsi?

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

Semasa anda menjalankan program, outputnya adalah:

 Di tempat sekarang Armstrong mendahului Tentera Darat

Artikel menarik...