Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

سلاسل C النصية - الجزء الأول

جزء من قسم Fundamentals في رحلة C++ على Coddy — الدرس 67 من 74.

يتم إنشاء سلاسل النصوص بنمط C (C-style strings) باستخدام النوع char بدلاً من string. وهي تنتهي بحرف خاص يسمى حرف العدم (null character) ('\0').

تميز هذه العلامة نهاية السلسلة النصية. غالبًا ما يُشار إلى السلاسل النصية بنمط لغة C باسم "السلاسل النصية المنتهية بـ null".

على سبيل المثال، إعلان بسيط:

char str1[] = "Hello";

تم التصريح عن str1 بدون حجم محدد. يقوم المترجم (compiler) تلقائياً بتحديد الحجم بناءً على القيمة الابتدائية (بما في ذلك الحرف الخالي null character).

مثال على التهيئة الصريحة باستخدام الأحرف:

char str2[6] = {'W', 'o', 'r', 'l', 'd', '\0'};

تم التصريح عن str2 بحجم 6 وتمت تهيئته بشكل صريح بالأحرف، بما في ذلك حرف الـ null في النهاية.

مثال على التهيئة الجزئية:

char str3[10] = "Coddy";

تم التصريح عن str3 بحجم 10، ولكن تم تهيئة أول 6 أحرف فقط. يتم ملء بقية المصفوفة بأحرف فارغة (null characters).

لاستخدام سلاسل C النصية (C-style strings)، نحتاج إلى تضمينها:

#include <cstring>

بعد التضمين، يمكننا استخدام الدالة strlen للحصول على طول سلسلة نصية بنمط C:

std::cout << strlen(str1); // الناتج: 5
challenge icon

التحدي

سهل

أنشئ دالة باسم printStringInfo تأخذ سلسلة نصية بنمط C كمدخل وتقوم بما يلي:

  1. String:  متبوعاً بالسلسلة النصية الأصلية.
  2. Length:  متبوعاً بنتيجة strlen(str).
  3. Character at index 4:  متبوعاً بالحرف الموجود في ذلك الموقع.
  4. Modified string:  متبوعاً بالسلسلة النصية بعد تغيير الحرف الأول إلى X.

ورقة مرجعية

يتم إنشاء سلاسل النصوص بنمط C (C-style strings) باستخدام النوع char وتنتهي بحرف العدم (null character) '\0'. وهي سلاسل نصوص منتهية بالعدم (null-terminated strings).

التصريح بدون حجم محدد (المترجم يحدد الحجم):

char str1[] = "Hello";

التهيئة الصريحة باستخدام الأحرف:

char str2[6] = {'W', 'o', 'r', 'l', 'd', '\0'};

التهيئة الجزئية (يتم ملء الباقي بأحرف العدم):

char str3[10] = "Coddy";

لاستخدام دوال سلاسل النصوص بنمط C، قم بتضمين:

#include <cstring>

الحصول على طول سلسلة النصوص باستخدام strlen():

std::cout << strlen(str1); // Output: 5

جرّب بنفسك

#include <iostream>
#include <cstring>

void printStringInfo(char str[]) {
    // طباعة السلسلة النصية
    

    // طباعة طول السلسلة النصية
    

    // طباعة الحرف الموجود في الفهرس 4
    

    // تعديل الحرف الأول إلى 'X'
    

    // طباعة السلسلة النصية المعدلة
    
}

int main() {
    char message[] = "Hello, World!";

    printStringInfo(message);

    return 0;
}
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس Fundamentals