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

سؤال في Strings

مغلق
بدأه مذهله@عيونه في 23 أبريل 2004 · 4 رد · 830 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

حبيت اسأل عن السلاسل الحرفية

معروفة السلاسل الحرفية انها مصفوفة من الحروف

لكن لو عندي مجموعة اسماء اقدر اخزنها في مصفوفة

؟؟؟

كأني أقول ممكن تجي سلسلة حرفية ذات بعدين ؟؟؟

اقصد بهذا الشكل

لمياء

شهد

سملى

عبدالعزيز

يعني السلسلة اصلا تحتاج الى مصفوفة

لكن لو عندي اكثر من سلسلة

وش الحل

؟؟؟

اقصد

char name [40];

gets(name);

لو عندي اسم ثاني

وبعدين لما تكون مصفوفتين كم فور راح استخدم

لانه على كذا بقعد ادخل حرف حرف ؟؟؟ صح ولا غلط؟؟

اتمنى التوضيح

لانه مو فاهمة الدرس مضبوط

تحياتي

اختكم

مذهلة

@

عيونه

اتمنى واضح سؤالي

#2

السلام عليكم ,,

توجد بالطبع سلاسل حرفية ذات بعدين ,, وأكثر استخدامتها كما ذكرتي في تخزين الأسماء ,,

char names[10][20];
cin>>names[0];
cin>>names[1];
cin>>na,es[2];

وهكذا حتى آخر اسم وهو العاشر ,,
cin>>names[9];

في المثال أعلاه كونا مصفوفة حرفية ببعدين ,, بعدها الأول 10 والثاني 20 ,, هنا نقو أن البعد الأول يرمز لعدد الأسماء والبعد الثاني يرمز لعدد الأحرف في كل اسم,, فقط بهذه البساطة ,,

والشيء الرائع ,, أنكي لن تضطري لادخال الأحرف واحدا عد الآخر بالضغط على Enter ,, بل ستدخلين كل الاسم ثم تضغطين على Enter فيتم تخزينها في مكان الاسم الاول مثلا ,,

وهذا الأمر خاص بال char فقط , حيث أنه في كل الأنواع الأخرى ينبغي الضغط على enter بين كل خانة والأخرى ,, كلن في ال Char يمكن كتابة كل الأحرف ثم الضغط على Enter في النهاية ,,

تمام :)

طبعا مثالي أعلاه توضيحي وكان يمكن كتابة أمر الادخال في حلقة for Loop كالتالي :

for(nt q=0;q<10;q++)
cin>>names[q];

banner_60_468.gif

NOTHING IS IMPOSSIBLE

#3

تسلم اخوي HGB

وألف تحية وشكر

فعلا توقعت كذا

بس قلت اسأل

ولاتنسى دروووس الهياكل مع البوينترز

وربي صعبة

تسلم على التوضيح

:)

اختك : مذهله

#4

السلام عليكم

بوضح خطا عندك يا اخ HGB

for(nt q=0;q<10;q++)
cin>>names[q];\\   اذا بتستخدم for وحده لازم تكتب الادخال  string
تكتب كذا
gets(nanes[q]);

واذا بتسخدم طريقة cin في الادخال فيصير تكتب

كذا

for(nt q=0;q<10;q++)
for (int i=o;i<10;i++)
cin>>names[q];

واسفه على التدخل واعلم ان ماكتبته هو سهو

#5

السلام عليكم ,,

أخي / أختي Mrs.n ,,

طريقتك بعمل ال For Loop صحيحة لكن مشكلتها أنك ستطرين لضغط مفتاح enter أو Space بين كل حرف والآخر ,,

وطريقتك هي الطريقة التي تعملبها كل أنواع المصفوفات الأخرى ,,

لكن رأى مبرمج السي++ ومبرمجو السي هذه المشكلة وأعطو ال char صفة خاصة لتسهيل التعامل معها ,, وكما قلت ال char فقط هي التي يمكن أن تعمل كالتالي ,,

char x[10];
cin >>x;

لاحظي هنا لم نضف لكل أعضاء المصفوفة x واحدا تلو الآخر ,, لكن دالة التحميل الزائد الخاصة ب << في الكائن cout الذي أصله الفئة "الكلاس" Ostream ,, تسمح باضافة كل العناصر ووضعها في buffer قبل ادخالها لداريء الدخل cout ,,

لهذا سيعمل المثال أعلاه ,,

لكن لن يعمل مع int ,float,long ,, أو غيره ,,

وأيضا المثال الأخير ,,

char names[10][20];
for(nt q=0;q<10;q++)
cin>>names[q];

سيعمل دون مشاكل :) ويمكن أن تجرب ذلك ,,

حفظك الله ,,

banner_60_468.gif

NOTHING IS IMPOSSIBLE

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

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