PDA

View Full Version : مبتدی: سوال در مقدار دادن به رشته ها



lidaline
شنبه 26 دی 1388, 22:19 عصر
با سلام در برنامه ام به یک مشکل ساده ولی مخرب برخورد کردم اون هم اینکه وقتی به یک متغیر با نوع رشته مقدار می دهم آن را نمی پذیرد
به طور مثال:
char name[10];
name = "Ali";
که ارور زیر را داد

lvalue required in function main()
بعد آن را به این شکل تغییر دادم

char name[10];
name = 'Ali';
که ارور زیر را داد

character constant must be one or two characters long in function main()
ولی وقتی در حالت دوم Ali رو به A یا Al تغییر دادم ارورها حذف شد ولی من می خواهم حداکثر طولم 10 باشد لطفا کمکم کنید .میدونم که برای شما خیلی راحته .
اگه توضیح هم بدید که چرا کد اول ارور میده کلی ممنون میشم آخه اون سطر عین مثال کتاب زبان سی قمی هست؟!

mortezamsp
یک شنبه 27 دی 1388, 11:11 صبح
char name[30] ;
strcpy(name ,"ali" ) ;


char * name = "ali" ;

jamil.net
یک شنبه 27 دی 1388, 17:10 عصر
سلام خوبی:
تو باید این جوری به رشته ات مقدار بدی:


{Char name[10]={'a','l','I','\0

Salar Ashgi
یک شنبه 27 دی 1388, 17:51 عصر
میتونید از روش های زیر استفاده کنید :



char a[] = {"Ali"};
==============
char a[10];
strcpy(a,"Ali");
==============

در اکثر زبانهای سطح بالا ، سی شارپ یا جاوا ، رشته ها بصورت یک آبجکتی از کلاس String طراحی شده

اند ، ولی در ++C اکثرا بصورت آرایه از کاراکترها استفاده میشه . (هر چند میشه بعنوان آبجکت هم ازش

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

اون اینکار امکان پذیر نیست و باید با یک حلقه ای اینکار انجام بشه .

مورد دوم هم کاملا نادرسته ، چون یکی بخاطر مورد اول و دیگری اینکه داخل تک کوتیشن فقط میشه یک

کاراکتر قرار داد ، نه یک رشته !

موفق باشید .