تعتبر مقارنة أطوال السلسلة دالة شائعة الاستخدام في برمجة لغة سي ، لأنها يمكن أن تخبرك بأي سلسلة تحتوي على عدد أكبر من الأحرف. هذه الوظيفة مفيدة للغاية في فرز البيانات. تتطلب مقارنة السلاسل وظيفة خاصة ؛ لا تستخدم! = أو ==.
خطوة
الخطوة 1. هناك نوعان من الوظائف التي يمكنك استخدامها لمقارنة السلاسل في لغة C
يتم تضمين كل من هذه الوظائف في المكتبة.
- strcmp (): تقارن هذه الدالة سلسلتين وتعيد نتيجة مقارنة عدد الأحرف بينهما.
- strncmp (): هذه الوظيفة هي نفسها strcmp () ، إلا أنها تقارن أول n} من الأحرف في السلسلة. تعتبر هذه الوظيفة أكثر أمانًا لأنها تمنع البرنامج من التوقف بسبب التحميل الزائد.
الخطوة 2. قم بتشغيل البرنامج بالمكتبات التي تحتاجها
نوصيك بالتشغيل ، جنبًا إلى جنب مع أي مكتبات أخرى تحتاجها لبرنامج معين.
# تضمين # تضمين
الخطوة 3. قم بتشغيل وظيفة
int. هذه هي أسهل طريقة لتعلم هذه الوظيفة ، لأنها تُرجع القيمة الصحيحة لمقارنة عدد الأحرف في سلسلتين.
#include #include int main () {}
الخطوة 4. حدد السلسلتين اللتين تريد مقارنتهما
على سبيل المثال ، سنقارن بين سلسلتين من نوع char البيانات التي تم تعريفها مسبقًا. يمكنك أيضًا تحديد القيمة التي تم إرجاعها بواسطة هذه الوظيفة للحصول على عدد صحيح لنوع البيانات.
#include #include int main () {char * str1 = "apple"؛ char * str2 = "برتقالي" ؛ int متقاعد }
الخطوة 5. إضافة وظيفة المقارنة
بمجرد تحديد هاتين السلسلتين ، يمكنك إضافة دالة مقارنة. سنستخدم strncmp () ، لذا سنحتاج إلى التأكد من أن عدد الأحرف المطلوب قياسها مُعد في الدالة.
#include #include int main () {char * str1 = "apple"؛ char * str2 = "برتقالي" ؛ int متقاعد ret = strncmp (str1، str2، 6) ؛ / * ستقارن هذه الوظيفة كلاً من '' السلسلة '' المكونة من 6 أحرف * /}
الخطوة 6. استخدام العبارات
إذا … آخر لإجراء المقارنة. بعد إضافة دالة إلى برنامجك ، يمكنك استخدام عبارة لعرض السلسلة التي تحتوي على عدد أكبر من الأحرف. ستعيد strncmp () 0 إذا كانت السلاسل تحتوي على نفس عدد الأحرف ، ورقم موجب إذا كانت str1 أطول ورقم سالب إذا كانت str2 أطول.
#include #include int main () {char * str1 = "apple"؛ char * str2 = "برتقالي" ؛ int متقاعد ret = strncmp (str1، str2، 6) ؛ إذا (ret> 0) {printf ("str1 أطول") ؛ } else if (ret <0) {printf ("str2 أطول")؛ } else {printf ("كلا الجملتين بنفس الطول")؛ } عودة (0)؛ }