الدرس 7 : التعامل مع النصوص - العمليات على سلاسل الأحرف
في عالمنا الرقمي، لا نتعامل مع الأرقام فقط. النصوص والبيانات الحرفية تملأ تطبيقاتنا: من أسماء المستخدمين وكلمات المرور، إلى رسائل البريد الإلكتروني ومحتوى صفحات الويب. القدرة على معالجة هذه النصوص بفعالية هي مهارة أساسية لأي مبرمج. في هذا الدرس، سنتعمق في نوع البيانات Chaîne de caractères
(String) والعمليات التي يمكننا إجراؤها عليه.
1. ما هي سلسلة الأحرف (String)؟
سلسلة الأحرف (Chaîne de caractères): هي نوع بيانات مُركّب يتكون من تتابع (أو تسلسل) من المحارف. يمكن أن تكون حرفًا واحدًا، كلمة، جملة، أو حتى نصًا فارغًا.
لإعلانها نستخدم nom_variable : Chaîne de caractères
، ولإعطائها قيمة، نضع النص بين علامتي اقتباس مزدوجتين: mon_nom ← "أحمد"
.
غوص أعمق: السلسلة كمصفوفة من المحارف
أهم فكرة يجب استيعابها هي أن الحاسوب يرى السلسلة النصية على أنها "قائمة" أو "مصفوفة" مرتبة من المحارف الفردية. كل حرف في هذه القائمة له موقع فريد يسمى الفهرس (Index).
في معظم مناهج الخوارزميات، يبدأ الترقيم (الفهرسة) من 1.
مثال: إذا كان لدينا S ← "ALGO"
- الحرف في الفهرس 1 هو 'A' (
S[1]
) - الحرف في الفهرس 2 هو 'L' (
S[2]
) - الحرف في الفهرس 3 هو 'G' (
S[3]
) - الحرف في الفهرس 4 هو 'O' (
S[4]
)
هذه الفكرة هي أساس العديد من العمليات التي سنتعلمها، خاصة الوصول إلى حرف معين أو المرور على كل حروف السلسلة باستخدام حلقة تكرارية.
2. العمليات الأساسية على سلاسل الأحرف
لنتعرف على الأدوات التي تتيح لنا التلاعب بالنصوص:
أ. عملية الربط (Concatenation)
هي عملية "لصق" سلسلتين أو أكثر معًا لتكوين سلسلة جديدة. نستخدم عامل الجمع +
لهذه العملية.
ب. دالة حساب الطول (Length)
تُرجع عدد المحارف الموجودة في السلسلة. هذه الدالة مفيدة جدًا، خاصة مع الحلقات التكرارية.
- الصيغة:
Longueur(la_chaine)
ج. الوصول إلى محرف عبر الفهرس (Character Access)
كما رأينا سابقًا، يمكننا استخراج حرف واحد من السلسلة باستخدام الأقواس المربعة [ ]
مع رقم الفهرس.
مثال: عرض الحرف الأول والأخير من كلمة
د. دالة استخلاص جزء من النص (Substring)
تسمح لنا بقص واستخراج جزء من سلسلة أكبر.
- الصيغة:
SousChaîne(la_chaine, position_début, nombre_de_caractères)
هـ. دالة البحث عن موقع (Position)
تبحث عن أول ظهور لسلسلة صغيرة داخل سلسلة أكبر، وتُرجع فهرس البداية لذلك الظهور. إذا لم يتم العثور عليها، تُرجع 0.
- الصيغة:
Position(chaine_recherchée, chaine_principale)
مثال: التحقق من وجود رمز '@' في إيميل
3. تطبيق شامل: عدّ الحروف المتحركة في كلمة
لنجمع ما تعلمناه في خوارزمية مفيدة تجمع بين الحلقات، الشروط، وعمليات السلاسل النصية.
المشكلة: كتابة خوارزمية تقرأ كلمة من المستخدم ثم تحسب وتعرض عدد الحروف المتحركة (voyelles) فيها. (الحروف المتحركة هي: a, e, i, o, u, y بالإضافة إلى الحروف الكبيرة).
خلاصة الدرس السابع
- سلاسل الأحرف هي تتابعات من المحارف، ويمكن الوصول لكل محرف عبر فهرسه.
- الربط (
+
): لدمج النصوص. Longueur()
: لمعرفة عدد المحارف.chaîne[i]
: للوصول إلى محرف معين.SousChaîne()
: لاستخلاص جزء من النص.Position()
: للبحث عن نص داخل نص آخر.- بدمج هذه العمليات مع الحلقات والشروط، يمكننا إجراء عمليات معالجة نصوص معقدة وقوية.