![String Comparison Function - strcmp() | C Language | Must Watch | English](https://i.ytimg.com/vi/BHCZa2iTfpQ/hqdefault.jpg)
المحتوى
من الشائع جدًا في كود C مقارنة أطوال السلسلة لمعرفة السلسلة التي تحتوي على المزيد من الأحرف. هذا مفيد لفرز البيانات. هناك حاجة إلى وظيفة خاصة لمقارنة السلاسل - لا تستخدم != أو ==.
خطوات
1 تتضمن لغة البرمجة C وظيفتين يمكنك استخدامهما لمقارنة أطوال السلسلة. يتم تضمين كل من هذه الوظائف في المكتبة السلسلة. h>.
- strcmp () - تقارن هذه الوظيفة سلسلتين وتعيد الفرق في عدد الأحرف.
- strncmp () - هذه الوظيفة هي نفسها strcmp () إلا أن الأول ن الشخصيات. يعتبر أكثر أمانًا لأنه يتجنب حالات فشل التدفق الزائد.
2 ابدأ البرنامج بالمكتبات المطلوبة. سوف تحتاج مكتبات stdio.h> و السلسلة. h>بالإضافة إلى أي مكتبات أخرى مطلوبة لبرنامجك المحدد.
# تضمين stdio.h> # تضمين السلسلة. h>
3 أدخل الوظيفة int. تقوم بإرجاع عدد صحيح نتيجة لمقارنة طول سلسلتين.
#include stdio.h> #include string.h> int main () {}
4 حدد السلسلتين اللتين تريد مقارنتهما. في مثالنا ، دعنا نقارن بين سلسلتين من النوع شار... حدد أيضًا قيمة الإرجاع كعدد صحيح.
#include stdio.h> #include string.h> int main () {char * str1 = "apple"؛ char * str2 = "برتقالي" ؛ int متقاعد }
5 أدخل دالة مقارنة. في مثالنا ، سنستخدم الوظيفة strncmp ()... تحتاج فيه إلى تعيين عدد الأحرف المقاسة.
#include stdio.h> #include string.h> int main () {char * str1 = "apple"؛ char * str2 = "برتقالي" ؛ int متقاعد ret = strncmp (str1، str2، 8) ؛ / * مقارنة سلسلتين يصل طولهما إلى 8 أحرف * /}
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.