Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

مقارنة النصوص

جزء من قسم Fundamentals في رحلة C++ على Coddy — الدرس 22 من 74.

في لغة ++C، يمكن مقارنة السلاسل النصية بطرق متعددة. بما أن std::string عبارة عن فئة (class)، فإنها تمتلك معاملات محملة بشكل زائد (overloaded operators) تجعل مقارنة السلاسل النصية بديهية ومباشرة.

الطريقة الأكثر شيوعاً لمقارنة السلاسل النصية هي استخدام معاملات المقارنة (==, !=, <, >, <=, >=):

string str1 = "hello";
string str2 = "hello";
string str3 = "Hello";

bool result1 = (str1 == str2);  // true
bool result2 = (str1 == str3);  // false (حساس لحالة الأحرف)
bool result3 = (str1 != str3);  // true

يمكنك أيضاً استخدام الطريقة compare()، التي تُرجع 0 إذا كانت السلاسل النصية متساوية، وعدداً صحيحاً سالباً إذا كانت السلسلة الأولى أصغر معجمياً، وعدداً صحيحاً موجباً إذا كانت أكبر. لاحظ أن القيمة الدقيقة تعتمد على التنفيذ (implementation-defined) — فهي ليست بالضرورة -1 أو 1:

string str1 = "a";
string str2 = "b";
string str3 = "c";

cout << str2.compare(str1) << endl; 
// موجب (b تأتي بعد a)

cout << str2.compare(str3) << endl;
// سالب (b تأتي قبل c)

cout << str2.compare(str2) << endl;
// 0 (سلاسل متساوية)

ورقة مرجعية

في لغة C++، يمكنك مقارنة السلاسل النصية باستخدام معاملات المقارنة أو الأسلوب compare().

استخدام معاملات المقارنة:

string str1 = "hello";
string str2 = "hello";
string str3 = "Hello";

bool result1 = (str1 == str2);  // صحيح
bool result2 = (str1 == str3);  // خطأ (حساس لحالة الأحرف)
bool result3 = (str1 != str3);  // صحيح

استخدام الأسلوب compare():

تُرجع القيمة 0 إذا كانت السلاسل متساوية، و <0 إذا كانت السلسلة الأولى أصغر معجمياً، و >0 إذا كانت أكبر:

string str1 = "a";
string str2 = "b";
string str3 = "c";

cout << str2.compare(str1) << endl; // قيمة موجبة (b تأتي بعد a)
cout << str2.compare(str3) << endl; // قيمة سالبة (b تأتي قبل c)
cout << str2.compare(str2) << endl; // 0 (سلاسل متساوية)

جرّب بنفسك

لا يتضمّن هذا الدرس تحدّيًا برمجيًا.

quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس Fundamentals