أعطاني خطأ لا أدري لماذا ولكن قالي أنه ال == خطأ
جربت = وكمان خطأ
حطيت فراغ بين القوسين كمان خطأ
if (s == "") break;
ما هو نوع s؟ و ما هي الوظيفة المفترضة لهذا الكود؟
لل char تستخدم هذه العلامة ' وليس هذه "
سؤال هل ال s هى من نوع char ام سلسلة char ؟؟
لا إله إلا الله محمد رسول الله
busbar : يجب ان تدرك انه هناك حد ادنى للمعرفة المطلوبة قبل البدء في عمل أي شئ.
طبيعي ان يعطيك خطأ
لأنك تقارن حرف بلا شيء
لاختبار اذا كان الحرف فارغ ( يعني نهاية نص )
if(s == '\0') break;
بمعنى , لو كان الحرف يساوي الحرف الذي قيمة الأسكي له صفر ( يعني نهاية النص) اكسر الدواره
او
if(s == 0) break;
نفس المعنى
احمد غريب كتب:
السـاحر كتب:مصفوفة عزيزي
لو تقصد انها مصفوفه تعني مصفوفه من السلاسل النصيه يعني تعريفها بهذا الشكل
char s[ ][ ] = {{......},
....
};يبقى محتاج الكود يكون بهذا الشكل
if(s[0] == '\0') break;
معناها تماما في اي لغه اخرى اذا كان النص فارغ اخرج
تم تعديل هذه المشاركة بواسطة Asm4all في 12 نوفمبر 2005 في 07:43
جربتها اخوي الكود صحيح ولكن يتوقف عند ضغط أنتر يعني عند القيمة 0
أنا أبغاه يتوقف لما أكتب شي مو راضي
وعندي مشكلة ثانية راح أحطها لك
switch(op){
case '+' : function = "plus";
case '-' : function = "del";
case '*' : function = "mul";
case '/' : function = "divid";
}موراشضي يحط قيمة بال function تعريفها char function
السـاحر كتب:جربتها اخوي الكود صحيح ولكن يتوقف عند ضغط أنتر يعني عند القيمة 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)); // الأفضل
عزيزي وضح أكثر, ربما حضرتك عندك خلفية في لغة اخرى و تنتقل الى السي بلص بلص, لا أدري, و لكن عندما تقول "اريد اخزن في الـ function قيمة plus" فهذه الجملة غير واضحة.
ما هو الـ functions هذا؟ هل هو * char او هل هو function pointer ام هل هو []char ام ماذا؟
و لماذاتريد تخزين قيمة plus فيه؟
الـ []char هو مصفوفة, و المصفوفات لا تستطيع ان تستعمل معها = بل عليك ان تقوم بنسخ الحروف كلها الى المصفوفة.
استخدم strcpy
strcpy( function, "plus" );
هذا الموضوع مغلق.