سلاسل C النصية - الجزء الأول
جزء من قسم الأساسيات في رحلة C++ على Coddy. الدرس 67 من 74.
تُنشأ السلاسل النصية بأسلوب C باستخدام النوع char بدلًا من string. وتنتهي بمحرف خاص يُسمّى المحرف الفارغ ('\0').
يحدد هذا المحرف نهاية السلسلة النصية. وغالبًا ما يُشار إلى السلاسل النصية بأسلوب C باسم «السلاسل النصية المنتهية بمحرف صفري».
على سبيل المثال، تصريح بسيط:
char str1[] = "Hello";تم التصريح عن str1 دون تحديد حجم معيّن. يحدّد المترجم الحجم تلقائيًا بناءً على القيمة الابتدائية (بما في ذلك الحرف الفارغ).
مثال على التهيئة الصريحة باستخدام المحارف:
char str2[6] = {'W', 'o', 'r', 'l', 'd', '\0'};تم التصريح عن str2 بحجم 6 وتهيئته صراحةً بأحرف، بما في ذلك محرف الإنهاء الفارغ في النهاية.
مثال على التهيئة الجزئية:
char str3[10] = "Coddy";تم التصريح عن str3 بحجم 10، لكن تمت تهيئة الأحرف الستة الأولى فقط. وتُملأ بقية المصفوفة بأحرف فارغة.
لاستخدام دوال السلاسل النصية بأسلوب C، نحتاج إلى تضمين ملف الترويسة هذا:
#include <cstring>بعد التضمين، يمكننا استخدام الدالة strlen للحصول على طول سلسلة نصية بأسلوب C:
std::cout << strlen(str1); // الناتج: 5التحدي
سهلأنشئ دالة باسم printStringInfo تأخذ سلسلة نصية بأسلوب C كمدخل وتنفّذ ما يلي:
String:متبوعة بالسلسلة النصية الأصلية.Length:متبوعة بنتيجةstrlen(str).Character at index 4:متبوعة بالحرف الموجود في ذلك الموضع.Modified string:متبوعة بالسلسلة النصية بعد تغيير الحرف الأول إلىX.
جرّب بنفسك
#include <iostream>
#include <cstring>
void printStringInfo(char str[]) {
// اطبع السلسلة النصية
// اطبع طول السلسلة النصية
// اطبع الحرف عند الفهرس 4
// غيّر الحرف الأول إلى 'X'
// اطبع السلسلة النصية بعد تعديلها
}
int main() {
char message[] = "Hello, World!";
printStringInfo(message);
return 0;
}يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس الأساسيات
4المعاملات - الجزء الأول
المعاملات الحسابيةمعامل باقي القسمة (Modulo)الزيادة والنقصانالزيادة والنقصان اللاحقةاختصارات العمليات الحسابيةمعاملات المقارنةمقارنة النصوص3المتغيرات - الجزء الثاني
التصريح عن النوعقواعد التسميةمراجعة - تهيئة المتغيراتتحويل الأنواع - الجزء الأولتحويل الأنواع - الجزء الثاني9حلقات التكرار
حلقة For - الجزء الأولحلقة Whileحلقة Do WhileBreakContinueحلقة For - الجزء الثانيالحلقات المتداخلةالحلقات اللانهائيةمراجعة - Dynamic Input12السلاسل النصية
سلاسل C النصية - الجزء الأولسلاسل C النصية - الجزء الثانيعمليات السلاسل النصيةدوال السلاسل النصية - الجزء الأولدوال السلاسل النصية - الجزء الثانيتدرّب بنفسك: مترجم C++ عبر الإنترنت