الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

طلب طريقة لمقارنة النصوص بدون الدالة ‏strcmp

بدأه Hisawa++ في 4 فبراير 2014 · 4 رد · 606 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم إخواني ،

سؤالي هو : هل توجد طريقة لإختبار تساوي سلسلتين من الحروف بدون استخدام دوال المكتبة ‏string‏ أو أي مكتبة أخرى عدا ‏stdio‏ و ‏conio

‎لا تيأسن إذا كبوتم مرة ** إن النجاح حليف كل مثابر‎

 

Import AnyCodeYouLearned Project = findNewProjecthasProject = Truewhile (!dead&&hasProject) { codeingisDone = try_Codeif (isDone)  Project = findNewProjectelse learn_code
#2
int j;
    for(j=0;string1[j]!=0&&string2[j]!=0;j++)
            {
                if(string1[j]>string2[j])
                    return 1;
                else if(string1[j]<string2[j])
                    return -1;
            }
    if(string1[j]!=0)
        return 1;
    else if(string2[j]!=0)
        return -1;
    return 0;

تم تعديل هذه المشاركة بواسطة مصطفى 36a2 في 5 فبراير 2014 في 11:27

#3

أخي لماذا

return;0

موجودة خارج الحلقات وهل سيغير ذلك في القيمة التي ترجع بعد الخروج من الحلقة

‎لا تيأسن إذا كبوتم مرة ** إن النجاح حليف كل مثابر‎

 

Import AnyCodeYouLearned Project = findNewProjecthasProject = Truewhile (!dead&&hasProject) { codeingisDone = try_Codeif (isDone)  Project = findNewProjectelse learn_code
#4

لأننا لا يمكننا الحكم على تساوي المصفوفتين حتى الانتهاء من اختبار جميع المحارف

ولكن انتبهت الآن إلى أنني أخطأت في الكود , قمت بالتعديل عليه

وهذا الكود مع شرح طريقة عمله

int j;//متغير للمرور على عناصر المصفوفتين معاً
    for(j=0;string1[j]!=0&&string2[j]!=0;j++)//شرط انتهاء الحلقة عو الوصول إلى نهاية إحدى السلسلتين
            {
                if(string1[j]>string2[j])//إذا وصلنا إلى حرف في السلسلة الأولى قيمته الأبجدية أكبر من الحرف في نفس الموضع في السلسلة الثانية فالأولى أكبر من الثانية معجميّاً
                    return 1;
                else if(string1[j]<string2[j])// عكس الشرط السابق
                    return -1;
            }
//إذا وصلنا إلى هنا فهناك عدة احتمالات : إما أن السلسلتين متساويتان وقد انتهيا معاً
// أو أن السلسلة الأولى انهت ولكن الثانية لم تنته , أو العكس
    if(string1[j]!=0)
        return 1;
    else if(string2[j]!=0)
        return -1;
    return 0;

تم تعديل هذه المشاركة بواسطة مصطفى 36a2 في 5 فبراير 2014 في 13:21

#5

مشكور أخي مصطفى

‎لا تيأسن إذا كبوتم مرة ** إن النجاح حليف كل مثابر‎

 

Import AnyCodeYouLearned Project = findNewProjecthasProject = Truewhile (!dead&&hasProject) { codeingisDone = try_Codeif (isDone)  Project = findNewProjectelse learn_code

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…