تعد مقارنة طول السلسلة دالة شائعة في برمجة لغة سي ، حيث تتيح لك معرفة السلسلة التي تحتوي على المزيد من الأحرف. هذا مفيد جدا لفرز البيانات. تتطلب مقارنة السلاسل وظيفة خاصة ؛ لا تستخدم! = أو ==.
خطوات
الخطوة 1. هناك وظيفتان تسمحان لك بمقارنة السلاسل في C
يتم تضمين كل من هذه الوظائف في المكتبة.
- strcmp () - تقارن هذه الدالة بين سلسلتين وتُرجع الفرق المقارن في عدد الأحرف.
- strncmp () - هذا هو نفسه strcmp () ، باستثناء أنه يقارن أول حرف n. يعتبر أكثر أمانًا لأنه يساعد على منع الأعطال من التدفق الزائد.
الخطوة 2. ابدأ البرنامج بالمكتبات الضرورية الخاصة بك
ستحتاج إلى كل من والمكتبات ، جنبًا إلى جنب مع أي مكتبات أخرى قد تحتاجها لبرنامجك المحدد.
# تضمين # تضمين
الخطوة 3. ابدأ ملف
int وظيفة.
هذه هي أسهل طريقة لتعلم هذه الوظيفة ، لأنها ستعيد عددًا صحيحًا يقارن طول السلسلتين.
#include #include int main () {}
الخطوة 4. حدد السلسلتين اللتين تريد مقارنتهما
في هذا المثال ، سنقارن بين سلسلتين من الأحرف المحددة مسبقًا. ستحتاج أيضًا إلى تحديد القيمة المعادة كعدد صحيح.
#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. استخدم ملف
لو غير هذا بيان لإجراء المقارنة.
الآن بعد أن أصبحت لديك الوظيفة في مكانها الصحيح ، يمكنك استخدام عبارة If… Else لعرض السلسلة الأطول. ستعيد 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)؛ }