سيناقش هذا القسم الطرق المختلفة لمقارنة السلاسل المعطاة في لغة البرمجة C++. تحدد مقارنة السلسلة ما إذا كانت السلسلة الأولى مساوية لسلسلة أخرى أم لا. مثال: HELLO وHello سلسلتان مختلفتان.
هناك طرق مختلفة لمقارنة السلاسل في لغة البرمجة C++، كما يلي:
- باستخدام الدالة strcmp()
- باستخدام وظيفة المقارنة ().
- باستخدام عامل العلائقية
- استخدام حلقة For وبيان If
- باستخدام وظيفة محددة من قبل المستخدم
الدالة strcmp()
إن strcmp () هي وظيفة مكتبة محددة مسبقًا لـ سلسلة. ح الملف الاساسي. تقوم الدالة strcmp() بمقارنة سلسلتين على أساس معجمي. هذا يعني أن الدالة strcmp() تبدأ بمقارنة السلسلة الأولى بالسلسلة الثانية، حرفًا بحرف حتى تكون جميع الأحرف في كلا السلسلتين متماثلة أو تتم مواجهة حرف NULL.
بناء الجملة
int strcmp ( const char *leftstr, const char *rightstr );
حدود:
اليسار: وهو يحدد أحرف السلسلة اليسرى.
حق: فهو يحدد أحرف السلسلة الصحيحة.
عائدات:
تقارن السلسلة leftstr كل حرف بالسلسلة الثانية من الجانب الأيسر حتى نهاية كلا السلسلتين. وإذا كانت كلتا السلاسل متساوية، فإن الدالة strcmp() ترجع سلاسل متساوية. وإلا فإن السلاسل ليست متساوية.
لنقم بإنشاء برنامج لمقارنة السلاسل باستخدام الدالة strcmp() في لغة C++.
Program1.cpp
#include using namespace std; #include int main () { // declare strings const char *str1 = ' Welcome to JavaTpoint'; const char *str2 = ' Welcome to JavaTpoint'; const char *str3 = ' JavaTpoint'; const char *str4 = ' Javatpoint'; cout << ' String 1: ' << str1 << endl; cout << ' String 2: ' << str2 << endl; // use strcmp() function to validate the strings are equal if (strcmp (str1, str2) == 0) { cout << ' Both strings are equal. ' << endl; } else { cout << ' The strings are not equal. ' << endl; } cout << ' String 3: ' << str3 << endl; cout << ' String 4: ' << str4 << endl; // use strcmp() function to validate the strings are equal if (strcmp (str3, str4) == 0) { cout << ' Both strings are equal. ' << endl; } else cout << ' The strings are not equal. '; return 0; }
انتاج |
String 1: Welcome to JavaTpoint String 2: Welcome to JavaTpoint Both strings are equal. String 3: JavaTpoint String 4: Javatpoint The strings are not equal.
وظيفة المقارنة ().
وظيفة المقارنة () هي وظيفة مكتبة محددة مسبقًا للغة C++. تقوم الدالة Compare() بمقارنة سلسلتين محددتين وإرجاع النتائج التالية بناءً على الحالات المطابقة:
- إذا كانت كلا السلسلتين متماثلتين، فسترجع الدالة 0.
- إذا كانت قيمة حرف السلسلة الأولى أصغر من السلسلة الثانية، ترجع الدالة<0.< li>
- إذا كانت السلسلة الثانية أكبر من السلسلة الأولى، ترجع الدالة أكبر من 0 أو >0. 0.<>
بناء الجملة
int compare (const string &str) const;
لنقم بإنشاء برنامج بسيط لمقارنة سلسلتين باستخدام وظيفة المقارنة () في لغة C++.
Program2.cpp
#include using namespace std; int main () { string str1, str2; // declare string variable cout <> str1; cout <> str2; // use compare() function to compare the second string with first string int i = str1.compare(str2); if ( i <0) { cout << str1 ' is smaller than str2 string' <<endl; } else if ( i> 0) { cout << str2 << ' is greater than ' << str1 << ' string.' << endl; } else // i == 0; { cout << ' Both strings are equal.'; } return 0; } </0)>
انتاج |
1st Run: Enter the string 1: Program Enter the string 2: program Program is smaller than program string 2nd Run: Enter the string 1: APPLE Enter the string 2: APPLE Both strings are equal.
مشغل العلائقية
إنه العامل المستخدم لمقارنة سلسلتين أو قيم رقمية في لغة C++. تحتوي لغة C++ على أنواع مختلفة من العوامل العلائقية مثل '=='، '!='، >، Program3.cpp انتاج | 2اختصار الثانيتنفيذ: لنقم بإنشاء برنامج لمقارنة ما إذا كانت السلاسل متساوية أم لا باستخدام عامل التشغيل Not Equal To (!=) في لغة C++. Program4.cpp انتاج | 2اختصار الثانييجري: Program5.cpp لنقم بإنشاء برنامج بسيط لمقارنة السلسلة الأولى بسلسلة أخرى باستخدام الوظيفة المحددة من قبل المستخدم في لغة C++. Program6.cpp انتاج | #include using namespace std; int main () { // declare string variables string str1; string str2; cout << ' Enter the String 1: ' <> str1; cout << ' Enter the String 2: ' <> str2; // use '==' equal to operator to check the equality of the string if ( str1 == str2) { cout << ' String is equal.' << endl; } else { cout << ' String is not equal.' << endl; } return 0; }
Enter the String 1: JavaTpoint Enter the String 2: javatpoint String is not equal.
Enter the String 1: Program Enter the String 2: Program String is equal.
قارن بين سلسلتين باستخدام العامل العلائقي Not Equal To (!=).
#include using namespace std; int main () { // declare string variables string str1; string str2; cout << ' Enter the String 1: ' <> str1; cout << ' Enter the String 2: ' <> str2; // use '!=' not equal to operator to check the equality of the string if ( str1 != str2) { cout << ' String is not equal.' << endl; } else { cout << ' String is equal.' << endl; } return 0; }
Enter the String 1: JAVATpoint Enter the String 2: JavaTPOINT String is not equal.
Enter the String 1: HELLO Enter the String 2: HELLO String is equal.
قارن بين سلسلتين باستخدام حلقة for وبيان if في C++
#include using namespace std; int main () { char s1[50], s2[50]; // declare character array int i, disp; cout << ' Enter the String 1: ' <> s1; cout << ' Enter the String 2: ' <> s2; for (i = 0; s1[i] == s2[i] && s1[i] == ' '; i++); if (s1[i] <s2[i]) 1 2 { cout < s2[i]) << ' string is less than 1'; } else equal to 2'; return 0; pre> <p> <strong>Output</strong> </p> <pre> Enter the String 1: WELCOME Enter the String 2: WELCOME String 1 is equal to String 2 </pre> <h3>Compare two strings using the User-defined function in C++</h3> <p>Let's create a simple program to compare the first string with another string using the user-defined function in C++.</p> <p> <strong>Program6.cpp</strong> </p> <pre> #include using namespace std; void RelationalCompare ( string str1, string str2) { // use relational not equal operator if ( str1 != str2) { cout << str1 << ' is not equal to ' << str2 << ' string. ' < str2) { cout << str1 << ' is greater than ' << str2 << ' string.' << endl; } else { cout << str2 << ' is greater than ' << str1 << ' string.' << endl; } } else cout << str1 << ' is equal to ' << str2 << ' string.' << endl; } int main () { string str1 ( 'JavaT'); string str2 ( 'Tpoint'); // call function RelationalCompare (str1, str2); string str3 ('JavaTpoint'); string str4 ('JavaTpoint'); RelationalCompare (str3, str4); return 0; } </pre> <p> <strong>Output</strong> </p> <pre> JavaT is not equal to Tpoint string. Tpoint is greater than JavaT string. JavaTpoint is equal to JavaTpoint string. </pre> <hr></s2[i])>
قارن بين سلسلتين باستخدام الدالة المعرفة من قبل المستخدم في C++
#include using namespace std; void RelationalCompare ( string str1, string str2) { // use relational not equal operator if ( str1 != str2) { cout << str1 << ' is not equal to ' << str2 << ' string. ' < str2) { cout << str1 << ' is greater than ' << str2 << ' string.' << endl; } else { cout << str2 << ' is greater than ' << str1 << ' string.' << endl; } } else cout << str1 << ' is equal to ' << str2 << ' string.' << endl; } int main () { string str1 ( 'JavaT'); string str2 ( 'Tpoint'); // call function RelationalCompare (str1, str2); string str3 ('JavaTpoint'); string str4 ('JavaTpoint'); RelationalCompare (str3, str4); return 0; }
وظائف السلسلة في جافا
JavaT is not equal to Tpoint string. Tpoint is greater than JavaT string. JavaTpoint is equal to JavaTpoint string.