سلاسل 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التحدي
سهلأنشئ دالة باسم printStringInfo تأخذ سلسلة نصية بنمط C كمدخل وتقوم بما يلي:
String:متبوعاً بالسلسلة النصية الأصلية.Length:متبوعاً بنتيجةstrlen(str).Character at index 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;
}يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس Fundamentals
4المعاملات - الجزء الأول
المعاملات الحسابيةمعامل باقي القسمة (Modulo)الزيادة والنقصانالزيادة والنقصان اللاحقةاختصارات العمليات الحسابيةمعاملات المقارنةمقارنة النصوص3المتغيرات - الجزء الثاني
التصريح عن النوعقواعد التسميةمراجعة - تهيئة المتغيراتتحويل الأنواع - الجزء الأولتحويل الأنواع - الجزء الثاني9حلقات التكرار
حلقة For - الجزء الأولحلقة Whileحلقة Do WhileBreakContinueحلقة For - الجزء الثانيالحلقات المتداخلةالحلقات اللانهائيةمراجعة - Dynamic Input12السلاسل النصية
سلاسل C النصية - الجزء الأولسلاسل C النصية - الجزء الثانيعمليات السلاسل النصيةدوال السلاسل النصية - الجزء الأولدوال السلاسل النصية - الجزء الثاني