رای مقداردهی رشته‌هایی که به صورت آرایه‌ای تعریف می‌شوند، به صورت کلی زیر عمل می‌کنیم:

name[n] = any_character;

برنامه زیر را نوشته و آن را اجرا نمایید:

int main()
{
char fname[5];
fname[0] = ‘A’;
fname[1] = ‘l’;
fname[2] = ‘i’;
cout << fname;
return 0;
}

نتیجه اجرای این برنامه چیست؟ از آنجایی که رشته‌هایی با طولهای متفاوت می‌تواند در این نوع متغیرها قرار بگیرد، به همین خاطر انتهای رشته‌ها را با علامت ” مشخص می‌کنند. برای درک این موضوع خط زیر را در جای مناسب به برنامه فوق اضافه کرده و آن را دوباره اجرا کنید:

fname[3] = ”;

مقداردهی این نوع رشته به صورت زیر تولید خطا خواهد کرد:

char fname[5];
fname = “Reza”; // Error occurred

برای مقداردهی این نوع متغیر رشته‌ای از تابعی بنام strcpy() به شکل زیر استفاده می‌کنند. برنامه زیر را تایپ و اجرا کنید:

int main()
{
char fname[5];
strcpy(fname, “Reza”);
cout << fname;
return 0;
}

همین برنامه را با استفاده از اشاره‌گر می‌نویسیم:

int main()
{
char *fname;
fname = “Reza”;
cout << fname;
return 0;
}

آیا باز هم خطایی اتفاق می‌افتد؟ آیا نیازی به استفاده از تابع strcpy() است؟ مجاز بودن دستور زیر را در این برنامه بررسی نمایید:

fname[1] = ‘a’;