إعـــــــلان

تقليص
لا يوجد إعلان حتى الآن.

Str Compare

تقليص
X
 
  • تصفية - فلترة
  • الوقت
  • عرض
إلغاء تحديد الكل
مشاركات جديدة

  • Str Compare

    فحص تساوي شريطين محرفيين بغض النظر عن حالة الأحرف

    كود:
    int equals(const char* a, const char* b) {
      assert(a && b);
      while (*a && *b) {
        int c1=*a;
        if (c1>='A'&&c1<='Z') c1+='a'-'A';
        int c2=*b;
        if (c2>='A'&&c2<='Z') c2+='a'-'A';
        if (c1!=c2) return 0;
        ++a;
        ++b;
      }
      return *a==*b;
    }

    Copyright (C) 2007 Matt Mahoney

    LICENSE

    This program is free software; you can redistribute it and/or
    modify it under the terms of the GNU General Public License as
    published by the Free Software Foundation; either version 2 of
    the License, or (at your option) any later version.

  • #2
    assert(a && b);
    don't you think this is a really bad error reporting ?
    user will never understand

    error in function : equals
    line : 2
    passing a null pointer ?

    what is user and what is that ?
    thanks any way
    BOOOF , I AM GONE
    Still , you gotta wait for my PRESENT :D
    C programming arabic Tutorial|Programming-fr34ks

    تعليق


    • #3
      this routine is a part of an experimental global program and the developer wanted to make sure that no null pointers are passed to the routine.

      تعليق


      • #4
        لنحسم موضوع ال Assertion
        إستخدام assert مع user input مش ينفع يتقال عنها غير bad error reporting
        لكن غير كدا استخدم assert خلال برنامجك لأن ال errors اللى هتطلع تهمك انت مش تهم المستخدم ;)

        GRB: مش شرط إنه عشان يكون برنامج عالمى يبقة خالى من الأخطاء كل دى bugs الناس هى اللى بتعالجها مش حكر على طقم التطوير نفسه

        وشكرا على الsnippet
        Programming-Fr34ks[dot]NET
        Ma Weblog
        ابدأ بتعلم Python | Ruby
        كتاب البايثون متوافر الآن
        لا اتواجد بهذا المنتدى ... للإتصال

        تعليق


        • #5
          المشاركة الأصلية بواسطة StrikerX مشاهدة المشاركة
          لنحسم موضوع ال Assertion
          إستخدام assert مع user input مش ينفع يتقال عنها غير bad error reporting
          لكن غير كدا استخدم assert خلال برنامجك لأن ال errors اللى هتطلع تهمك انت مش تهم المستخدم ;)

          GRB: مش شرط إنه عشان يكون برنامج عالمى يبقة خالى من الأخطاء كل دى bugs الناس هى اللى بتعالجها مش حكر على طقم التطوير نفسه

          وشكرا على الsnippet
          طبعاً البرامج العالمية ليست خالية من الأخطاء و العيوب و هذا أمر مفروغ منه و بعض الشركات تراجع شيفرة برامجها مرتين و ثلاثة و أربعة و ليس هذا هو المغزى إنما المغزى أن الـ Assert تستخدم من قبل المطور نفسه ليضمن أن مدخلات الإجراء صحيحة كون المدخلات تأتي من عمليات و خوارزميات معالجة أخرى و لا يمكن التنبأ تماماً بشكلها و أنا شخصياً لا أستخدمها إلا عندما تظهر الأخطاء الغامضة و التي تحتاج ملاحقة حثيثة و لكن وضعها هنا بالشكل السابق هو باعتقادي حفظ لحقوق كاتب الأسطر إذ أني لو غيرت أو عدلت أي سطر من السابق فيمكنني وضعها باسمي مثلاً و لم تعد تابعة للمبرمج الحقيقي.

          تعليق

          يعمل...
          X