C++الدالة compare()
تعريفها
تقارن النص الذي قام باستدعائها مع النص الذي نمرره لها مكان الباراميتر str
.
و ترجع رقم يمثل الفرق بينهما.
كل حرف في الحاسوب له رقم يسمى آسكي كود (ASCII) خاص به.
فمثلاً الآسكي كود للحرف A بشكله الكبير هو 65، أما الآسكي كود للحرف a بشكله الصغير فهو 97 إلخ..
بالطبع ليس عليك حفظ الآسكي كود للأحرف و لكن يكفي أن تعلم بأنه برمجياً يمكن استغلاله في عمليات المقارنة.
بناؤها
هناك شكلين من هذه الدالة. أي يمكن إستدعاءها بطريقتين مختلفتين.
int compare (const string& str) const
باراميترات
مكان الباراميتر str
نمرر النص الذي ستتم مقارنته مع النص الذي قام باستدعاء الدالة.
قيمة الإرجاع
- ترجع
0
في حال كانا متساويين. - ترجع
1
في حال كانت قيمة الآسكي كود (ASCII) للنص الذي قام باستدعائها أكبر من النص الذي نمرره لها. - ترجع
-1
في حال كانت قيمة الآسكي كود (ASCII) للنص الذي قام باستدعائها أكبر من النص الذي نمرره لها.
مثال
using namespace std; int main() { string s1 = "I like cats."; string s2 = "I'm learning c++ from harmash.com"; string s3 = s1; cout << s1.compare(s2) << endl; // s2 أقل من قيمة الآسكي كود في s1 هنا سيتم طباعة 1- لأن قيمة الآسكي كود في cout << s2.compare(s1) << endl; // s1 أكبر من قيمة الآسكي كود في s2 هنا سيتم طباعة 1 لأن قيمة الآسكي كود في cout << s1.compare(s3) << endl; // s3 يساوي قيمة الآسكي كود في s1 هنا سيتم طباعة 0 لأن قيمة الآسكي كود في return 0; }
سنحصل على النتيجة التالية عند التشغيل.
-1 1 0