إحدى العمليات المهمة عند العمل مع النص هي مقارنة السلسلة. في لغة البرمجة ج ، يمكن مقارنة السلاسل بطرق مختلفة ، والتي تعتمد على المنطق المطلوب وخصائص مهمة معينة.
في هذه المقالة ، سنلقي نظرة على العديد من الأمثلة وطرق مقارنة السلسلة في لغة ج. وسوف نلقي نظرة مفصلة على استخدام وظيفة ستركمب () ، وهي وظيفة قياسية من مكتبة ج لمقارنة سلسلة.
ستركمب () يقارن سلسلتين وإرجاع عدد صحيح يظهر العلاقة بين السلاسل. إذا كانت النتيجة 0 ، فهذا يعني أن السلاسل متطابقة. إذا كانت النتيجة أقل من 0 ، فهذا يعني أن الصف الأول أصغر من الثاني. إذا كانت النتيجة أكبر من 0 ، فهذا يعني أن الصف الأول أكبر من الثاني.
بالإضافة إلى ستركمب (), مقارنات سلسلة لا يمكن أن يؤديها باستخدام عوامل المقارنة ( = = ,!=, <,>, <>=). من المهم أن تتذكر أنه عند استخدام عوامل المقارنة ، سيتم مقارنة عنوان بداية السلسلة فقط ، وليس محتوياتها. لذلك ، عند مقارنة السلاسل ، من المهم عدم نسيان استخدام فكلوس () لمقارنة قيم أحرف السلسلة ، وليس عناوينها.
- المفهوم الأساسي
- طرق مقارنة الأحرف
- طرق مقارنة السلسلة
- مفهوم مقارنة السلسلة المعجمية
- أمثلة مقارنة السلسلة
- طرق مكتبة ج القياسية لمقارنة السلسلة
- سؤال وجواب
- كيف يمكنني مقارنة سلسلتين في ج?
- ما هي طرق مقارنة السلسلة الأخرى الموجودة في ج?
- كيف أقارن السلاسل غير الحساسة لحالة الأحرف?
- هل من الممكن مقارنة السلاسل باستخدام عوامل المقارنة (على سبيل المثال ، = = أو >)?
- ماذا علي أن أفعل إذا كانت السلاسل لها أطوال مختلفة?
المفهوم الأساسي
مقارنة سلسلة في لغة البرمجة ج هي واحدة من العمليات الأساسية. يسمح لك بتحديد ما إذا كان سطرين متساويين مع بعضهما البعض أو أي خط يأتي قبل الآخر أبجديا.
تستخدم طرق مختلفة لمقارنة السلاسل في ج ، والتي يمكن تقسيمها إلى فئتين رئيسيتين: طرق مقارنة الأحرف وطرق مقارنة السلاسل.
طرق مقارنة الأحرف
ال لغة ج يستخدم نهج ترميز الأحرف أسي ، حيث يكون لكل حرف قيمة رقمية. يتم إجراء مقارنة الأحرف من خلال مقارنة قيمها الرقمية. للقيام بذلك ، يمكنك استخدام عوامل المقارنة ( ، = ) ، والتي تقارن القيم الرقمية للأحرف.
على سبيل المثال ، إذا كنت بحاجة إلى مقارنة سلسلتين للمساواة ، فيمكنك مقارنة كل حرف من السلسلة بالترتيب. إذا كان هناك حرف أثناء عملية المقارنة لا تساوي القيمة الرقمية في السطر الأول القيمة الرقمية في السطر الثاني ، فإن السلاسل ليست متساوية.
طرق مقارنة السلسلة
.
يقارن سلسلتين وإرجاع عدد صحيح يظهر السلسلة التي تأتي قبل الأخرى. إذا كانت نتيجة المقارنة صفرا ، فإن الصفوف تعتبر متساوية. إذا كانت نتيجة المقارنة سالبة ، فإن السطر الأول يأتي قبل السطر الثاني بالترتيب الأبجدي. إذا كانت نتيجة المقارنة موجبة ، فإن السطر الثاني يأتي قبل السطر الأول بالترتيب الأبجدي.
يقوم بإجراء مقارنة بين العدد المحدود من الأحرف المحددة بواسطة المعلمة ، بدلا من السلسلة الكاملة. هذا يسمح لك لمقارنة الأحرف ن الأولى من سلسلتين.
كل من هذه الأساليب مقارنة سلسلة يمكن استخدامها اعتمادا على متطلبات مهمة معينة.
مفهوم مقارنة السلسلة المعجمية
مقارنة السلسلة المعجمية هي طريقة لمقارنة السلاسل بناء على ترتيبها المعجمي. في المقارنة المعجمية ، تتم مقارنة السلاسل حرفا بحرف ، بدءا من الحرف الأول. إذا تطابق الأحرف الأولى ، ثم تتم مقارنة الأحرف التالية ، وهلم جرا حتى يتم العثور على الفرق.
لإجراء مقارنة سلسلة معجمية في لغة البرمجة ج ، يتم استخدام وظيفة ستركمب (). تأخذ هذه الدالة سلسلتين كوسيطات وتعيد عددا صحيحا يوضح العلاقة بين السلاسل:
- إذا كانت النتيجة 0 ، فهذا يعني أن كلا الخطين متطابقان.
- إذا كانت النتيجة سالبة ، فهذا يعني أن الصف الأول أصغر من الثاني.
- إذا كانت النتيجة موجبة ، فهذا يعني أن الصف الأول أكبر من الثاني.
مثال على استخدام وظيفة ستركمب():
# تشمل
# تشمل
كثافة العمليات الرئيسية () {
شار ستري1 [] = "اي بي سي";
شار ستري2 [] = "أبسد";
النتيجة الدولية = ستركمب (ستري1 ، ستري2);
إذا (النتيجة= = 0) {
برينتف ("الخطوط متساوية
");
}
آخر إذا (النتيجة < 0) {
برينتف ("السطر الأول أقل من الثاني
");
}
آخر {
برينتف ("السطر الأول أكبر من الثاني
");
}
العودة 0;
}
في هذا المثال ، تقارن الدالة ستركمب () السلاسل "أبك" و "أبسد". نظرا لأن السطر الأول أقصر ، ستكون النتيجة رقما سالبا ، وسيتم عرض "السطر الأول أقل من الثاني".
يمكن أن تكون مقارنة السلاسل المعجمية مفيدة في كثير من الحالات ، على سبيل المثال ، عند فرز السلاسل أو عند البحث عن السلاسل بالترتيب الأبجدي.
أمثلة مقارنة السلسلة
في ال لغة البرمجة ج ، يتم إجراء مقارنة السلسلة باستخدام ستركمب() و سترنكمب () وظائف. تقوم كلتا الدالتين بإرجاع قيمة توضح العلاقة بين السلسلتين التي تتم مقارنتها.
يتم استخدام وظيفة ستركمب () لمقارنة سلسلتين تصل إلى الحرف الأول مختلفة في نفوسهم. عند مقارنة السلاسل ، يتم تطبيق النظام المعجمي ، وهذا هو ، تتم مقارنة قيم رموز الأحرف أسي.
Ниже приведен пример использования функции strcmp().
#include
#include
int main() {
char str1[50], str2[50];
printf("Введите первую строку: ");
gets(str1);
printf("Введите вторую строку: ");
gets(str2);
int result = strcmp(str1, str2);
if(result == 0) {
printf("Строки равны");
} else if(result < 0) {
printf("Строка 1 меньше строки 2");
} else {
printf("Строка 1 больше строки 2");
}
return 0;
}
إذا سلسلتين متساوية ، ستركمب () يعود الصفر. إذا كان الصف الأول أصغر من الثاني ، يتم إرجاع قيمة سالبة. إذا كان الصف الأول أكبر من الثاني ، يتم إرجاع قيمة موجبة.
يتم استخدام وظيفة سترنسمب () لمقارنة سلسلتين ، ولكن مع تعريف الحد الأقصى لعدد الأحرف للمقارنة.
وفيما يلي مثال على استخدام الدالة سترنسمب ().
# تشمل
# تشمل
كثافة العمليات الرئيسية () {
شار ستري1 [50] ، ستري2 [50];
برينتف ("أدخل السطر الأول:");
يحصل (ستري1);
برينتف ("أدخل السطر الثاني:");
يحصل (ستر 2);
النتيجة الدولية = سترنكمب (ستر1 ، ستر2 ، 4);
إذا (النتيجة= = 0) {
برينتف ("أول 4 أحرف من السلاسل متساوية");
} آخر إذا (النتيجة < 0) {
برينتف ("أول 4 أحرف من السطر 1 أقل من أول 4 أحرف من السطر 2");
} آخر {
برينتف ("أول 4 أحرف من السطر 1 أكبر من أول 4 أحرف من السطر 2");
}
العودة 0;
}
في المثال أعلاه ، تقارن وظيفة سترنسمب() أول 4 أحرف من سطرين. إذا كانت الأحرف 4 الأولى متساوية ، يتم إرجاع الصفر. إذا كانت الأحرف 4 الأولى من السطر 1 أقل من الأحرف 4 الأولى من السطر 2 ، يتم إرجاع قيمة سالبة. إذا كانت الأحرف 4 الأولى من السطر 1 أكبر من الأحرف 4 الأولى من السطر 2 ، يتم إرجاع قيمة موجبة.
الآن أنت تعرف كيفية مقارنة السلاسل في لغة البرمجة ج باستخدام وظائف ستركمب () و سترنكمب ().
طرق مكتبة ج القياسية لمقارنة السلاسل
توفر مكتبة سي القياسية عدة طرق لمقارنة السلاسل. وهنا بعض منهم:
- ستركاسيمب: هذا الأسلوب يقارن سلسلتين حالة حساسة. فإنه يعود نفس القيمة كما ستركمب ، ولكن حالة حساسة. على سبيل المثال:
// ستكون النتيجة فارغة ، لأن السلاسل" أبك "و" أبك " متساوية
إلى سترنكاسيمب: تقارن هذه الطريقة العدد المحدد من الأحرف في سلسلتين ، غير حساسة لحالة الأحرف. فإنه يعود نفس القيمة كما ستركمب ، ولكن يقارن فقط عدد محدد من الأحرف وغير حساس لحالة الأحرف. على سبيل المثال:
شار ستري1 [] = "اي بي سي";
شار ستري2 [] = "أبسد";
إنت النتيجة = سترنكاسيسمب (ستر 1 ، ستر 2 ، 3);
// ستكون النتيجة صفرا ، لأن السلاسل" أبك "و" أبك " متساوية