الدرس 33: مصفوفة السلاسل النصية (مصفوفات الحروف ثنائية الأبعاد)
تتم تمثيل مصفوفة من السلاسل النصية في لغة C كمصفوفة حروف ثنائية الأبعاد، حيث يحمل كل صف سلسلة نصية واحدة (مصفوفة حروف)، تنتهي بـ \0.
التصريح والتهيئة
القاعدة: char array_name[number_of_strings][max_length_of_string];
c // 4 سلاسل نصية، الحد الأقصى للطول 10 أحرف (بالإضافة إلى حرف الصفر) char names[4][11] = { "Alice", // 6 بايت (5 + \0) "Bob", // 4 بايت "Charlie", // 8 بايت "Dave" // 5 بايت };
الوصول والتكرار
names[i]يشير إلى السلسلة النصية بأكملها (الصف).names[i][j]يشير إلى الحرف رقم j في السلسلة رقم i.
مثال: طباعة جميع الأسماء
c #include <stdio.h> #define NUM_NAMES 4 #define MAX_LEN 11
int main() { char names[NUM_NAMES][MAX_LEN] = {"Alice", "Bob", "Charlie", "Dave"};
for (int i = 0; i < NUM_NAMES; i++) {
// استخدم %s لطباعة الصف (السلسلة النصية) بالكامل
printf("الاسم %d: %s\n", i + 1, names[i]);
}
// الوصول لحرف محدد (الحرف 'r' في Charlie)
printf("الحرف: %c\n", names[2][3]);
return 0;
}
بديل: مصفوفة من المؤشرات للسلاسل النصية (نظرة مسبقة)
هناك طريقة أكثر مرونة وكفاءة في استخدام الذاكرة للتعامل مع السلاسل النصية وهي استخدام مصفوفة من المؤشرات، حيث يشير كل مؤشر إلى سلسلة نصية مخزنة في مكان آخر (سيتم تغطيتها لاحقاً في وحدة المؤشرات).