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

لماذا لم ينفذ هذا الكود

مغلق
بدأه Eng.Fedail في 12 نوفمبر 2005 · 15 رد · 989 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

أعطاني خطأ لا أدري لماذا ولكن قالي أنه ال == خطأ

جربت = وكمان خطأ

حطيت فراغ بين القوسين كمان خطأ

if (s == "") break;

joseph.gif

logo.gif

CCNA 640-802

مدونتي

#2

ما هو نوع s؟ و ما هي الوظيفة المفترضة لهذا الكود؟

#3

char

joseph.gif

logo.gif

CCNA 640-802

مدونتي

#4

لل char تستخدم هذه العلامة ' وليس هذه "

سؤال هل ال s هى من نوع char ام سلسلة char ؟؟

لا إله إلا الله محمد رسول الله

busbar : يجب ان تدرك انه هناك حد ادنى للمعرفة المطلوبة قبل البدء في عمل أي شئ.

#5

مصفوفة عزيزي

joseph.gif

logo.gif

CCNA 640-802

مدونتي

#6

نفذت ' ولم تنفع

joseph.gif

logo.gif

CCNA 640-802

مدونتي

#7

طبيعي ان يعطيك خطأ

لأنك تقارن حرف بلا شيء

لاختبار اذا كان الحرف فارغ ( يعني نهاية نص )

if(s == '\0') break;

بمعنى , لو كان الحرف يساوي الحرف الذي قيمة الأسكي له صفر ( يعني نهاية النص) اكسر الدواره

او

if(s == 0) break;

نفس المعنى

#8
احمد غريب كتب:
لل char تستخدم هذه العلامة ' وليس هذه "

سؤال هل ال s هى من نوع char ام سلسلة char ؟؟

السـاحر كتب:
مصفوفة عزيزي

لو تقصد انها مصفوفه تعني مصفوفه من السلاسل النصيه يعني تعريفها بهذا الشكل

char s[ ][ ] = {{......},
....
};

يبقى محتاج الكود يكون بهذا الشكل

if(s[0] == '\0') break;

معناها تماما في اي لغه اخرى اذا كان النص فارغ اخرج

تم تعديل هذه المشاركة بواسطة Asm4all في 12 نوفمبر 2005 في 07:43

#9

مشكووور عزيز هي مصفوف ذات بعد واحد

جاري التجربة

joseph.gif

logo.gif

CCNA 640-802

مدونتي

#10

جربتها اخوي الكود صحيح ولكن يتوقف عند ضغط أنتر يعني عند القيمة 0

أنا أبغاه يتوقف لما أكتب شي مو راضي

وعندي مشكلة ثانية راح أحطها لك

switch(op){
	case '+' : function = "plus"; 
    case '-' : function = "del";
	case '*' : function = "mul";
	case '/' : function = "divid";

	}

موراشضي يحط قيمة بال function تعريفها char function

joseph.gif

logo.gif

CCNA 640-802

مدونتي

#11
السـاحر كتب:
جربتها اخوي الكود صحيح ولكن يتوقف عند ضغط أنتر يعني عند القيمة 0

أنا أبغاه يتوقف لما أكتب شي مو راضي

وعندي مشكلة ثانية راح أحطها لك

switch(op){
	case '+' : function = "plus"; 
    case '-' : function = "del";
	case '*' : function = "mul";
	case '/' : function = "divid";

	}

موراشضي يحط قيمة بال function  تعريفها char function

1 - يا اخي ممكن توضح الوظيفه المطلوبه من الكود , لكي يتثنى لي تعديله لك

2 - لي سؤال , هل انت منتقل حديثا من لغة البيسيك و توابعها ؟

ويا ريت تكتب لي اعلان المتغير function تماما , يعني هل هو بهذا الشكل

char function[8] = {0};

مثلا ؟؟

لو كان على هذا النحو , اذن التعريف صحيح لكن الاسناد خاطئ

نستخدم الداله strcpy أو strncpy أو snprintf لعملية الاسناد للسلسلة النصية

مثال :

بفرض انك معرف المتغير بهذا الشكل :

char buffer[8] = {0};

ممكن تكتب هذا الكود :

sprintf(buffer, "One");

أو

strcpy(buffer, "Two");

أو

strncpy(buffer, "Three", sizeof(buffer)); // الأفضل
#12

الكود الأول عزيزي أبغاه يخزن في المصفوفة من الكلام اللي كاتبه المستخدم مالم يجد فراغ فإذا وجد فراغ يكمل في ال في الجزء الثاني من المصفوفة

الكود الثاني أبغاه يشوف إذا كان أدخال المستخدم + يخزن في ال function قيمة plus

joseph.gif

logo.gif

CCNA 640-802

مدونتي

#13

عزيزي وضح أكثر, ربما حضرتك عندك خلفية في لغة اخرى و تنتقل الى السي بلص بلص, لا أدري, و لكن عندما تقول "اريد اخزن في الـ function قيمة plus" فهذه الجملة غير واضحة.

ما هو الـ functions هذا؟ هل هو * char او هل هو function pointer ام هل هو []char ام ماذا؟

و لماذاتريد تخزين قيمة plus فيه؟

#14

عزيزي funcyion هو char أريد أن اخزن فيه قيمة على حسب أدخال المستخدم

الثاني هو char[20]

مو راضي يخزن فيه بعد أبغا طريقة تخزين داخل ال char

joseph.gif

logo.gif

CCNA 640-802

مدونتي

#15

الـ []char هو مصفوفة, و المصفوفات لا تستطيع ان تستعمل معها = بل عليك ان تقوم بنسخ الحروف كلها الى المصفوفة.

استخدم strcpy

strcpy( function, "plus" );
#16

مشكووور أخوي

joseph.gif

logo.gif

CCNA 640-802

مدونتي

هذا الموضوع مغلق.

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