أهلاً وسهلاً بكم في الدرس السابع عشر من دورة تعلم لغة C , في هذا الدرس سنكمل موضوع المصفوفات ونشرح الجزء الثالث والأخير من موضوع المصفوفات وهو مصفوفات السلاسل الحرفية string arrays كما سنشرح موضوع الـ string بصورة عامة .
ماهو الـ string ؟
هو عبارة عن سلسلة نصية قد تتكون من الرموز أو الأحرف أو الأرقام . فمثلا عبارة " tech-shortly " هي عبارة عن string .
*طرق كتابة هذه الدوال ستوضح أكثر في الأمثلة التالية :
ماهو الـ string ؟
هو عبارة عن سلسلة نصية قد تتكون من الرموز أو الأحرف أو الأرقام . فمثلا عبارة " tech-shortly " هي عبارة عن string .
إن أهم مايجب أن نتعلمه في موضوع السلاسل النصية string هو الدوال الخاصة بهذا الموضوع وهي كثيرة سنتطرق الى المهمة منها والاكثر استخداماً ولكننا لانستطيع إستخدام هذه الدوال إلا بعد تضمين الملف الرأسي الخاص بها وهو <string.h> .
طريقة تعريف الـ string ؟
char array name [array size]
فمثلا لو أردنا تعريف مصفوفة إسمها S وحجمها 40 رمز , فسيكون التعريف بالشكل التالي :
char s[ ]="tech-shortly" ;
هنا كأنه أعطينا قيمة أو أحرف محددة والطول يتحدد تلقائياً وفقاً لعدد الحروف التي أدخلت
OR char s[40]="tech-shortly" ;
stringهنا كأنه أعطينا قيمة أو أحرف محددة بالإضافة إلى طول أو أكبر عدد ممكن يستوعبه هذا الـ
OR char s[ ]={‘t’,’e’,’c’,’h’,’-‘,’s’,’h’,’o’,’r’,’t’,’l’,’y’,’\0'} ;
OR char s[13]={‘t’,’e’,’c’,’h’,’-‘,’s’,’h’,’o’,’r’,’t’,’l’,’y’,’\0'} ;
String تدل على نهاية الـNULL تعني\0
ملاحظة : نلاحظ أنه أدخلنا أسمين غير متساويين ولكن في المقارنة ظهرت النتيجة أنهم متساويين والسبب هو وجود دالة نسخ الاسم الثاني داخل الاسم الأول فأصبحوا متساويين .
char S[40]
طريقة إعطاء قيم للمصفوفة ؟
يتم اعطاء القيم أما من قبل المبرمج بصورة مباشرة أو عن طريق مستخدم البرنامج وسنشرح الطريقتين .
يتم اعطاء القيم أما من قبل المبرمج بصورة مباشرة أو عن طريق مستخدم البرنامج وسنشرح الطريقتين .
يمكن اعطاء القيم من قبل المبرمج بالطريقة التالية :
char s[ ]="tech-shortly" ;
هنا كأنه أعطينا قيمة أو أحرف محددة والطول يتحدد تلقائياً وفقاً لعدد الحروف التي أدخلت
OR char s[40]="tech-shortly" ;
stringهنا كأنه أعطينا قيمة أو أحرف محددة بالإضافة إلى طول أو أكبر عدد ممكن يستوعبه هذا الـ
OR char s[ ]={‘t’,’e’,’c’,’h’,’-‘,’s’,’h’,’o’,’r’,’t’,’l’,’y’,’\0'} ;
OR char s[13]={‘t’,’e’,’c’,’h’,’-‘,’s’,’h’,’o’,’r’,’t’,’l’,’y’,’\0'} ;
String تدل على نهاية الـNULL تعني\0
أما طريقة إدخال الـ STRING من قبل المستخدم فيكون بتعريف مصفوفة وتحديد حجمها ( أي تعيين اكبر عدد من الحروف ممكن أن تستوعبه هذه المصفوفة ) ثم استخدام دالة الادخال الاعتيادية scanf . اي هنا في هذا النوع من المصفوفات لانستخدم جملة for .
مثال برمجي : برنامج بسيط بلغة C لتعريف مصفوفة نصية ثم إدخالها من قبل المستخدم وطباعتها .
دوال الـ string ؟
ذكرنا في الأعلى انه يوجد دوال خاصة للتعامل مع موضوع السلاسل النصية string وسنتعرف على هذه الدوال فقط تم تلخيصها بالصورة التالية وجميع هذه الدوال موجودة ضمن الملف الرأسي <string.h> لذلك يجب تضمينه في اعلى برنامجنا عند التعامل مع هذه الدوال .
ذكرنا في الأعلى انه يوجد دوال خاصة للتعامل مع موضوع السلاسل النصية string وسنتعرف على هذه الدوال فقط تم تلخيصها بالصورة التالية وجميع هذه الدوال موجودة ضمن الملف الرأسي <string.h> لذلك يجب تضمينه في اعلى برنامجنا عند التعامل مع هذه الدوال .
ملاحظة : إضغط على الصورة لتظهر بالحجم الطبيعي .
هذه الدوال هي دوال جاهزة ضمن المكتبة string.h نستعملها لغرض تبسيط البرنامج وجعل الايعاز والجملة البرمجية أسهل . وسيتم توضيح كيفية استعمالها في البرنامج التالي .
مثال برمجي : هذا البرنامج سيتم فيه تعريف مصفوفتين الاولى ستكون خاصة بـ ( الاسم الاول ) والثانية خاصة بـ ( الاسم الاخير ) وسيتم تنفيذ جميع الدوال أعلاه . نرجو التركيز بالكود البرمجي والقيام بمتابعته مع متابعة نتيجة التنفيذ لمشاهدة فائدة هذه الدوال .
مثال برمجي : هذا البرنامج سيتم فيه تعريف مصفوفتين الاولى ستكون خاصة بـ ( الاسم الاول ) والثانية خاصة بـ ( الاسم الاخير ) وسيتم تنفيذ جميع الدوال أعلاه . نرجو التركيز بالكود البرمجي والقيام بمتابعته مع متابعة نتيجة التنفيذ لمشاهدة فائدة هذه الدوال .
ملاحظة : نلاحظ أنه أدخلنا أسمين غير متساويين ولكن في المقارنة ظهرت النتيجة أنهم متساويين والسبب هو وجود دالة نسخ الاسم الثاني داخل الاسم الأول فأصبحوا متساويين .
ننتقل الان الى الجزء الاخير من موضوعنا وهو يخص ثلاث دوال مهمة وتستخدم في موضوع السلاسل النصية وهذه الدوال هي :
1- getchar
هذه الدالة عملها لا يختلف فهي تعني إدخال رمز أو حرف واحد فقط ثم تنتظر الضغط على زر enter من لوحة المفاتيح لتأخذ القيمة وتقوم بخزنها في المتغير وبعد ذلك تقوم بطباعتها .
getche -2
تعني إدخال حرف واحد فقط ولكن هنا لا تنتظر الضغط على زر enter فمجرد إدخال الحرف يظهر على الشاشة ويوضع في المتغير .
3- getch
تعني أيضا إدخال حرف واحد فقط ولكن هنا لا تنتظر الضغط على زر enter فمجرد إدخال الحرف يوضع في المتغير من دون أن يظهر على الشاشة .
هذه الدالة عملها لا يختلف فهي تعني إدخال رمز أو حرف واحد فقط ثم تنتظر الضغط على زر enter من لوحة المفاتيح لتأخذ القيمة وتقوم بخزنها في المتغير وبعد ذلك تقوم بطباعتها .
getche -2
تعني إدخال حرف واحد فقط ولكن هنا لا تنتظر الضغط على زر enter فمجرد إدخال الحرف يظهر على الشاشة ويوضع في المتغير .
3- getch
تعني أيضا إدخال حرف واحد فقط ولكن هنا لا تنتظر الضغط على زر enter فمجرد إدخال الحرف يوضع في المتغير من دون أن يظهر على الشاشة .
الى هنا نأتي الى نهاية درسنا ونهاية موضوع المصفوفات . الدرس القادم سيكون خاص بالأفكار والتطبيقات حول موضوع المصفوفات وسنقدم لكم مجموعة من البرامج التي من شأنها أن تعمل على زيادة افكاركم البرمجية وتعريفكم اكثر بتقنيات خاصة بموضوع المصفوفات وكيفية التعامل معها .
الى اللقاء في الدرس القادم
الى اللقاء في الدرس القادم
0 التعليقات :
إرسال تعليق