رای مقداردهی رشتههایی که به صورت آرایهای تعریف میشوند، به صورت کلی زیر عمل میکنیم:
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’;