3 طرق لمقارنة السلاسل في C++

0 الأسهم
0
0
0
0

مقدمة

في هذه المقالة، سوف تتعلم كيفية مقارنة السلاسل في C++.

1. استخدام الدالة strcmp() في C++

تحتوي لغة C++ String على دوال مدمجة لمعالجة بياناتها. دالة strcmp() هي دالة من مكتبة C تُستخدم لمقارنة سلسلتين معجميًا.

  • يجب أن تكون سلسلة الإدخال عبارة عن مجموعة أحرف من سلاسل النمط C.
  • تقوم strcmp() أيضًا بمقارنة السلاسل في نموذج حساس لحالة الأحرف.
int strcmp(const char *str1, const char *str2);

تعيد هذه الدالة القيم التالية اعتمادًا على العناصر المطابقة:

  • يتم إرجاع 0 إذا كانت السلسلتين متماثلتين.
  • إذا كانت قيمة حرف السلسلة الأولى أصغر مقارنة بقيمة إدخال السلسلة الثانية، فإنها ترجع < 0 (أقل من الصفر).
  • عندما يكون السلسلة الثانية في المقارنة أكبر، تكون النتائج > 0 (أكبر من الصفر).

قم بتشغيل الكود التالي:

#include <iostream>
#include <string.h>
int main()
{
const char *str_inp1 = "String Match";
const char *str_inp2 = "String Unmatch";
std::cout << "String 1: " << str_inp1 << std::endl;
std::cout << "String 2: " << str_inp2 << std::endl;
if (strcmp(str_inp1, str_inp2) == 0)
std::cout << "\nBoth the input strings are equal." << std::endl;
else
std::cout << "\nThe input strings are not equal." << std::endl;
}

يؤدي هذا إلى الناتج التالي:

OutputString 1: String Match
String 2: String Unmatch
The input strings are not equal.

نتيجة الدالة strcmp(str_inp1, str_inp2) هي -9. قيمتا str_inp1 وstr_inp2 مختلفتان.

قم بتشغيل الكود التالي:

#include <iostream>
#include <string.h>
int main()
{
const char *str_inp1 = "String Match";
const char *str_inp2 = "String Match";
std::cout << "String 1: " << str_inp1 << std::endl;
std::cout << "String 2: " << str_inp2 << std::endl;
if (strcmp(str_inp1, str_inp2) == 0)
std::cout << "\nBoth the input strings are equal." << std::endl;
else
std::cout << "\nThe input strings are not equal." << std::endl;
}

يؤدي هذا إلى الناتج التالي:

Output
String 1: String Match
String 2: String Match
Both the input strings are equal.

ترجع strcmp(str_inp1, str_inp2) القيمة 0. قيم str_inp1 و str_inp2 هي نفسها.

2. استخدام دالة compare() في C++

تحتوي لغة C++ على دالة compare() مدمجة لمقارنة سلسلتين.

تقوم دالة compare() بمقارنة سلسلتين:

int compare (const string& string-name) const;

تعيد هذه الدالة القيم التالية اعتمادًا على العناصر المطابقة:

  • يتم إرجاع 0 إذا كانت السلسلتين متماثلتين.
  • إذا كانت قيمة حرف السلسلة الأولى أصغر مقارنة بقيمة إدخال السلسلة الثانية، فإنها ترجع < 0 (أقل من الصفر).
  • عندما يكون السلسلة الثانية في المقارنة أكبر، تكون النتائج > 0 (أكبر من الصفر).

قم بتشغيل الكود التالي:

#include <iostream>
int main()
{
std::string str_inp1("String Match");
std::string str_inp2("String Match");
std::cout << "String 1: " << str_inp1 << std::endl;
std::cout << "String 2: " << str_inp2 << std::endl;
int res = str_inp1.compare(str_inp2);
if (res == 0)
std::cout << "\nBoth the input strings are equal." << std::endl;
else if (res < 0)
std::cout << "\nString 1 is smaller as compared to String 2." << std::endl;
else
std::cout << "\nString 1 is greater as compared to String 2." << std::endl;
}

في هذا المثال، تتم مقارنة str_inp1 وstr_inp2 باستخدام compare():

Output
String 1: String Match
String 2: String Match
Both the input strings are equal.

كلا السلسلتين متطابقتان معجميًا، لذا تقوم الدالة بإرجاع القيمة 0.

قم بتشغيل الكود التالي:

#include <iostream>
int main()
{
std::string str_inp0("String Match");
std::string str_inp1("String Match");
std::string str_inp2("String Unmatch");
std::cout << "String 1: " << str_inp1 << std::endl;
if (str_inp1.compare(str_inp0) == 0)
std::cout << "\nStrings are equal." << std::endl;
else
std::cout << "\nStrings are not equal." << std::endl;
std::cout << "String 2: " << str_inp2 << std::endl;
if (str_inp2.compare(str_inp0) == 0)
std::cout << "\nStrings are equal." << std::endl;
else
std::cout << "\nStrings are not equal." << std::endl;
}

في هذا المثال، تتم مقارنة str_inp0 مع str_inp1:

Output
String 1: String Match
Strings are equal.

ثم تتم مقارنة str_inp0 مع str_inp2:

Output
String 2: String Unmatch
Strings are not equal.

يقوم هذا الكود بمقارنة سلسلة بسلسلة إدخال أخرى مباشرةً باستخدام وظيفة compare().

3. العوامل العلائقية في C++

يمكن أن تكون عوامل العلاقات C++ مثل == (يساوي) و!= (لا يساوي) مفيدة في مقارنة السلاسل.

التحقق من تساوي القيمتين:

string1 == string2

التحقق من عدم تساوي القيمتين:

string1 != string2
المثال 1: استخدام عامل == في لغة C++

قم بتشغيل الكود التالي:

#include <iostream>
int main()
{
std::string str_inp1;
std::string str_inp2;
std::cout << "Enter the String 1:\n";
std::cin >> str_inp1;
std::cout << "Enter the String 2:\n";
std::cin >> str_inp2;
if (str_inp1 == str_inp2)
std::cout << "Strings are equal" << std::endl;
else
std::cout << "Strings are not equal" << std::endl;
}

قم بتوفير القيم "String 1" و "String 2":

Enter the String 1:
DigitalOcean
Enter the String 2:
digitalocean
Strings are not equal

يقوم الكود بمقارنة سلسلتين باستخدام ==.

المثال 2: استخدام عامل C++ !=

قم بتشغيل الكود التالي:

#include <iostream>
int main()
{
std::string str_inp1;
std::string str_inp2;
std::cout << "Enter the String 1:\n";
std::cin >> str_inp1;
std::cout << "Enter the String 2:\n";
std::cin >> str_inp2;
if (str_inp1 != str_inp2)
std::cout << "Strings are not equal" << std::endl;
else
std::cout << "Strings are equal" << std::endl;
}

قم بتوفير القيم "String 1" و "String 2":

Enter the String 1:
DigitalOcean
Enter the String 2:
DigitalOcean
Strings are equal

يقوم الكود بمقارنة سلسلتين مع !=.

نتيجة

في هذه المقالة، تعرّفت على أساليب مقارنة السلاسل النصية في لغة C++. وشمل ذلك دالة strcmp() للسلاسل النصية، ودالة compare() المدمجة، ومعاملات العلاقات (==، !=).

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *


قد يعجبك أيضاً
لوحة تحكم ModSecurity cPanel

أدوات الأمان في cPanel — دليل الخبراء

إذا كنت تستخدم cPanel لإدارة استضافة موقعك الإلكتروني، فربما تعلم أن الأمان هو أحد أسس استمرارية موقعك وثقة المستخدمين به. يوفر لك cPanel مجموعة واسعة من الأدوات لتعزيز أمان موقعك بشكل كبير. في هذه المقالة، سنتناول هذه الأدوات بمزيد من التفصيل، ونقدم روابط للوثائق الرسمية والمقالات ذات الصلة لمساعدتك في ضبط أمان استضافتك بثقة أكبر.
أفضل روبوتات تداول العملات المشفرة المجانية

روبوت تداول العملات المشفرة وكيفية التعامل معه

تتصل روبوتات التداول عادةً بحساب المستخدم مباشرةً من خلال واجهة برمجة التطبيقات الخاصة بالبورصة (مثل Binance و Coinbase و KuCoin و Bybit وما إلى ذلك) وتنفذ الصفقات بناءً على الإعدادات المحددة مسبقًا.