Lorem ipsum dolor sit amet, consectetur adipiscing elit. Test link

تعلم لغة C - الدرس الثامن: السلاسل النصية (Strings)

تعلم لغة C - الدرس الثامن: السلاسل النصية (Strings)

الدرس الثامن: السلاسل النصية في لغة C (Strings)

مرحبًا بك في الدرس الثامن من سلسلة تعلم لغة C. بعد أن تعلمنا المصفوفات، الآن سنغوص في مفهوم السلاسل النصية (Strings)، وهي أحد أهم أنواع البيانات التي تُستخدم للتعامل مع النصوص في البرامج.

ما هي السلاسل النصية (Strings)؟

السلسلة النصية هي مجموعة من الأحرف المتتالية المخزنة في مصفوفة من نوع char، تنتهي دائمًا بالرمز \\0 (null character) الذي يشير إلى نهاية السلسلة.

أهمية السلاسل النصية

  • تمثل النصوص جزءًا أساسيًا من أي برنامج.
  • تُستخدم لتخزين أسماء المستخدمين، الرسائل، الكلمات، والبيانات النصية الأخرى.
  • تُمكّنك من إجراء عمليات مقارنة، نسخ، وطباعة النصوص.
  • تُستخدم في التفاعل مع المستخدم وإدخال البيانات النصية.

إعلان السلاسل النصية

يمكن إعلان سلسلة نصية باستخدام مصفوفة char:

char name[20];  // مصفوفة تستطيع تخزين نص يصل إلى 19 حرفًا + '\0'

أو تعيين قيمة عند الإعلان:

char name[] = "Ahmad";  // لا حاجة لتحديد الحجم، المترجم يحسبه تلقائيًا

الوصول إلى عناصر السلسلة

يمكن الوصول لأي حرف داخل السلسلة عن طريق الفهرس (Index) الذي يبدأ من 0:

#include <stdio.h>

int main() {
    char name[] = "Ahmad";
    printf("الحرف الأول: %c\\n", name[0]);
    printf("الحرف الثالث: %c\\n", name[2]);
    return 0;
}

تعديل السلسلة النصية

يمكن تعديل أي حرف داخل السلسلة بسهولة:

name[1] = 'm';  // تغيير الحرف الثاني

دوال السلاسل النصية في مكتبة <string.h>

لغة C توفر مكتبة <string.h> للتعامل مع السلاسل النصية، أهم الدوال:

  • strlen(str): لحساب طول السلسلة.
  • strcpy(dest, src): نسخ السلسلة من المصدر إلى الهدف.
  • strcat(dest, src): دمج سلسلتين نصيتين.
  • strcmp(str1, str2): مقارنة سلسلتين نصيتين.

مثال عملي: استخدام دوال السلاسل النصية

#include <stdio.h>
#include <string.h>

int main() {
    char str1[20] = "Hello";
    char str2[] = "World";

    // دمج النصوص
    strcat(str1, str2);
    printf("النص المدمج: %s\\n", str1);

    // حساب الطول
    printf("طول النص: %lu\\n", strlen(str1));

    // مقارنة نصوص
    char str3[] = "HelloWorld";
    if(strcmp(str1, str3) == 0) {
        printf("النصوص متساوية\\n");
    } else {
        printf("النصوص غير متساوية\\n");
    }

    // نسخ النص
    char str4[20];
    strcpy(str4, str1);
    printf("النص المنسوخ: %s\\n", str4);

    return 0;
}

تمارين عملية للمبتدئين

  1. إعلان سلسلتين نصيتين ودمجهما وطباعة النتيجة.
  2. حساب طول سلسلة نصية يدخلها المستخدم.
  3. مقارنة سلسلتين نصيتين وإظهار رسالة حسب النتيجة.
  4. نسخ سلسلة نصية إلى سلسلة أخرى وطباعة النتيجة.
  5. تغيير حرف محدد في سلسلة نصية وطباعة السلسلة بعد التعديل.

مشاريع صغيرة مقترحة

  • برنامج للتحقق من كلمة مرور مُدخلة.
  • برنامج لتحويل النصوص إلى حروف كبيرة أو صغيرة.
  • برنامج عدّ الحروف في نص يدخل من المستخدم.
  • برنامج لتحويل النصوص إلى سلسلة عكسية (Reverse).

نصائح للمبتدئين

  • تأكد دائمًا من وجود '\0' في نهاية السلسلة النصية.
  • ابدأ بمصفوفة صغيرة ثم جرب النصوص الأطول تدريجيًا.
  • استخدم دوال مكتبة <string.h> لتسهيل التعامل مع النصوص.
  • جرب كتابة برامج صغيرة لتعزيز فهم السلاسل النصية عمليًا.

إرسال تعليق

حقوق النشر © لغات البرمجة جميع الحقوق محفوظة
x