Programming Basics SQL HTML CSS JavaScript React Python C++ Java JavaFX Swing Problem Solving English English Conversations Computer Fundamentals Linux Learn Typing

C++الدالة compare()

تعريفها

تقارن النص الذي قام باستدعائها مع النص الذي نمرره لها مكان الباراميتر str.
و ترجع رقم يمثل الفرق بينهما.

كل حرف في الحاسوب له رقم يسمى آسكي كود (ASCII) خاص به.
فمثلاً الآسكي كود للحرف A بشكله الكبير هو 65، أما الآسكي كود للحرف a بشكله الصغير فهو 97 إلخ..
بالطبع ليس عليك حفظ الآسكي كود للأحرف و لكن يكفي أن تعلم بأنه برمجياً يمكن استغلاله في عمليات المقارنة.



بناؤها

هناك شكلين من هذه الدالة. أي يمكن إستدعاءها بطريقتين مختلفتين.

C++ 98
C++ 11
C++ 14
int compare (const string& str) const


باراميترات

مكان الباراميتر str نمرر النص الذي ستتم مقارنته مع النص الذي قام باستدعاء الدالة.



قيمة الإرجاع

  • ترجع 0 في حال كانا متساويين.
  • ترجع 1 في حال كانت قيمة الآسكي كود (ASCII) للنص الذي قام باستدعائها أكبر من النص الذي نمرره لها.
  • ترجع -1 في حال كانت قيمة الآسكي كود (ASCII) للنص الذي قام باستدعائها أكبر من النص الذي نمرره لها.


مثال

Main.cpp
#include <iostream>

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