سلاسل C النصية - الجزء الثاني
جزء من قسم Fundamentals في رحلة C++ على Coddy — الدرس 68 من 74.
من المهم أن تتذكر أنه عندما تعلن عن سلسلة نصية بنمط C (C-style string) بحجم محدد، فإنك تحتاج إلى تخصيص مساحة كافية للأحرف التي تريد تخزينها، بالإضافة إلى مساحة إضافية واحدة لحرف النهاية الفارغ (null character).
على سبيل المثال:
// صحيح: "Hello" تحتاج إلى 6 مساحات
// (5 أحرف + '\0')
char str1[6] = "Hello";// خطأ: المصفوفة صغيرة جداً!
// "Hello" تحتاج إلى 6 مساحات، ولكن تم توفير 5 فقط
char str2[5] = "Hello";
// خطأ: لن يتم التجميع - يوجد 5 خانات فقط لـ 6 أحرف ('H','e','l','l','o','\0')// صحيح: المساحة الإضافية لا بأس بها
// مساحة أكثر من كافية (10 > 6 مطلوبة)
char str3[10] = "Hello";// مثال يوضح عدد الأحرف:
char name[5] = "John"; // يحتاج إلى 5 مساحات:
// J + o + h + n + '\0' = 5 أحرفيمكنك الوصول إلى الأحرف الفردية في سلسلة نصية بنمط C (C-style string) باستخدام تدوين المصفوفة:
char str[] = "Hello";
char first = str[0]; // 'H'
char third = str[2]; // 'l'يمكنك أيضاً تعديل الأحرف في سلسلة نصية بنمط C، طالما أنك لا تتجاوز حدود المصفوفة:
char str[] = "Hello";
str[0] = 'J';
std::cout << str; // يطبع "Jello"ومع ذلك، لا يمكنك تعيين سلسلة نصية جديدة مباشرة إلى سلسلة نصية بنمط C بعد التصريح عنها. ستحتاج إلى استخدام دوال مثل strcpy لنسخ السلاسل النصية، وهو ما سنغطيه في دروس لاحقة.
جرّب بنفسك
لا يتضمّن هذا الدرس تحدّيًا برمجيًا.
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس Fundamentals
4المعاملات - الجزء الأول
المعاملات الحسابيةمعامل باقي القسمة (Modulo)الزيادة والنقصانالزيادة والنقصان اللاحقةاختصارات العمليات الحسابيةمعاملات المقارنةمقارنة النصوص3المتغيرات - الجزء الثاني
التصريح عن النوعقواعد التسميةمراجعة - تهيئة المتغيراتتحويل الأنواع - الجزء الأولتحويل الأنواع - الجزء الثاني9حلقات التكرار
حلقة For - الجزء الأولحلقة Whileحلقة Do WhileBreakContinueحلقة For - الجزء الثانيالحلقات المتداخلةالحلقات اللانهائيةمراجعة - Dynamic Input12السلاسل النصية
سلاسل C النصية - الجزء الأولسلاسل C النصية - الجزء الثانيعمليات السلاسل النصيةدوال السلاسل النصية - الجزء الأولدوال السلاسل النصية - الجزء الثاني