C ++ strcoll () - C ++ Standard Library

Fungsi strcoll () di C ++ membandingkan dua string penghentian null. Perbandingan didasarkan pada lokal saat ini yang ditentukan oleh kategori LC_COLLATE.

strcmp () sudah cukup untuk kebanyakan perbandingan string, tetapi ketika berhadapan dengan karakter unicode, terkadang ada nuansa tertentu yang membuat perbandingan string byte-ke-byte salah.

Misalnya, jika Anda membandingkan dua string dalam bahasa Spanyol, string tersebut dapat berisi karakter beraksen seperti á, é, í, ó, ú, ü, ñ, ¿, ¡dll.

Secara default, karakter beraksen tersebut muncul setelah seluruh alfabet a, b, c… z. Perbandingan seperti itu akan salah karena aksen yang berbeda dari a seharusnya muncul sebelum b.

strcoll () menggunakan lokal saat ini untuk melakukan perbandingan yang memberikan hasil yang lebih akurat dalam kasus seperti itu.

Ini didefinisikan dalam file header.

strcoll () prototipe

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

Fungsi strcoll () mengambil dua argumen: lhs dan rhs. Ini membandingkan isi lhs dan rhs berdasarkan lokal saat ini kategori LC_COLLATE.

strcoll () Parameter

  • lhs dan rhs: Pointer ke string yang diakhiri null untuk membandingkan.

strcoll () Nilai kembali

Fungsi strcoll () mengembalikan:

  • nilai positif jika karakter berbeda pertama di lhs lebih besar dari karakter yang sesuai di rhs.
  • nilai negatif jika karakter berbeda pertama di lhs kurang dari karakter yang sesuai di rhs.
  • 0 jika lhs dan rhs sama.

Contoh: Bagaimana fungsi strcoll () bekerja?

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

Saat Anda menjalankan program, hasilnya adalah:

 Di lokasi saat ini Armstrong mendahului Angkatan Darat

Artikel yang menarik...