كيفية مقارنة سلسلتين في لغة البرمجة سي

مؤلف: William Ramirez
تاريخ الخلق: 18 شهر تسعة 2021
تاريخ التحديث: 19 يونيو 2024
Anonim
String Comparison Function - strcmp() | C Language | Must Watch | English
فيديو: String Comparison Function - strcmp() | C Language | Must Watch | English

المحتوى

من الشائع جدًا في كود C مقارنة أطوال السلسلة لمعرفة السلسلة التي تحتوي على المزيد من الأحرف. هذا مفيد لفرز البيانات. هناك حاجة إلى وظيفة خاصة لمقارنة السلاسل - لا تستخدم != أو ==.

خطوات

  1. 1 تتضمن لغة البرمجة C وظيفتين يمكنك استخدامهما لمقارنة أطوال السلسلة. يتم تضمين كل من هذه الوظائف في المكتبة السلسلة. h>.
    • strcmp () - تقارن هذه الوظيفة سلسلتين وتعيد الفرق في عدد الأحرف.
    • strncmp () - هذه الوظيفة هي نفسها strcmp () إلا أن الأول ن الشخصيات. يعتبر أكثر أمانًا لأنه يتجنب حالات فشل التدفق الزائد.
  2. 2 ابدأ البرنامج بالمكتبات المطلوبة. سوف تحتاج مكتبات stdio.h> و السلسلة. h>بالإضافة إلى أي مكتبات أخرى مطلوبة لبرنامجك المحدد.

    # تضمين stdio.h> # تضمين السلسلة. h>

  3. 3 أدخل الوظيفة int. تقوم بإرجاع عدد صحيح نتيجة لمقارنة طول سلسلتين.

    #include stdio.h> #include string.h> int main () {}

  4. 4 حدد السلسلتين اللتين تريد مقارنتهما. في مثالنا ، دعنا نقارن بين سلسلتين من النوع شار... حدد أيضًا قيمة الإرجاع كعدد صحيح.

    #include stdio.h> #include string.h> int main () {char * str1 = "apple"؛ char * str2 = "برتقالي" ؛ int متقاعد }

  5. 5 أدخل دالة مقارنة. في مثالنا ، سنستخدم الوظيفة strncmp ()... تحتاج فيه إلى تعيين عدد الأحرف المقاسة.

    #include stdio.h> #include string.h> int main () {char * str1 = "apple"؛ char * str2 = "برتقالي" ؛ int متقاعد ret = strncmp (str1، str2، 8) ؛ / * مقارنة سلسلتين يصل طولهما إلى 8 أحرف * /}

  6. 6 أدخل عبارة شرطية لو... آخر. هناك حاجة لإظهار أي خط أطول. وظيفة strncmp () سيعيد الرقم 0إذا كانت أطوال السلاسل متماثلة ، فسيكون الرقم الموجب إذا كان str1 أطول ورقمًا سالبًا إذا كان str2 أطول.

    #include stdio.h> #include string.h> int main () {char * str1 = "apple"؛ char * str2 = "برتقالي" ؛ int متقاعد ret = strncmp (str1، str2، 8) ؛ إذا (ret> 0) {printf ("str1 أطول") ؛ } else if (ret 0) {printf ("str2 أطول")؛ } else {printf ("أطوال الأسطر متساوية")؛ } عودة (0)؛ }

تحذيرات

  • تذكر أنه إذا كانت أطوال السلاسل متساوية ، فسيتم إرجاع القيمة 0. قد يكون هذا محيرًا لأن القيمة 0 هي أيضًا FALSE.