14-3 استخدام المؤشرات فى عمليات السلسلة النصية Using Pointers in String Operations :
تطبيق أخر مفيد للمؤشرات وهو إنشاء والتعامل مع "متغيرات السلسلة النصية " . تذكر أن السلسلة النصية هى "مجموعة مصفوفات حرف تنتهى بحرف الصفر NULL .
باستخدام المؤشرات ، يمكننا إنشاء سلسلة نصية كما هو مبين بالمثال التالى :
هنا ، تم إنشاء "مصفوفة حروف مخفية" عند وقت الترجمة ، تحتوى على الحروف ‘JOHN’ ، وتنتهى بحرف NULL . يتم التهيئة الابتدائية لمؤشر الحرف ( p ) وتحميلها بعناوين الذاكرة لهذه السلسلة . وهذا أى عنوان الحرف الأول بها وهو حرف ( J ) . المبرمج لا يكون لديه على حجم السلسلة التى تم إنشاؤها ، وبالتالى يجب لا تحاول تغيير محتوياتها باستخدام المؤشر .
فى العديد من التطبيقات قد نرغب فى إنشاء سلاسل ثابتة طويلة . يتم عمل ذلك بسهولة باستخدام المؤشرات وإعلان السلاسل كثوابت . فيمل يلى مثال يوضح ذلك :
كود:
const char *p1 = “My very long text string”;
من المهم أن ندرك الفروق بين الطريقتين التاليتين فى إنشاء السلاسل التالية :
كود:
cont char Text[ ] = “An example text”;
const char *p = “An example text”;
· فى العبارة الأولى : يتم إنشاء مصفوفة تسمى Text وإنهائها بحرف NLL . يمكن الوصول للحروف بشكل فردى بواسطة الترقيم التسلسلى (فهرس) index للمصفوفة .
· فى العبارة الثانية : الحروف “An example text” وصفر الانتهاء يتم تخزينها فى مكان ما بالذاكرة ، ويتم تحميل المؤشر ( p ) بعنوان أول حرف بهذا النص ، وهو الحرف ( A ) .
يمكننا إنشاء مصفوفات لسلاسل نصية باستخدام المؤشرات . فى المثال التالى ، يتم إنشاء سبع مؤشرات بالأسماء من Days[0] إلى Days[6] ويتم تحميل كل مؤشر بالعنوان المقابل لاسم اليوم . يتم تعيين بعد مصفوفة المؤشرات تلقائيل بالقيمة ( 7 ) بواسطة المترجم .
كود:
char *Days[ ] ={ “Monday”,
“Tuesday”,
“Wednesday”,
“Thursday”,
“Friday”,
“Saturday”,
“Sunday”
};
15- الأبنية Structures :