PDA

View Full Version : ارور این برنامه چیه؟



lidaline
جمعه 18 دی 1388, 15:25 عصر
برنامه ای نوشتم با struct که ساختمان آن به شکل زیر است

struct strings
{
char str[100];
int len;
char set[10];
}M[100];

که در آن str رشته ها را میگیرد
len طول هر رشته را میگیرد
set پس از پردازش و گذراندن مراحل مشخص میکند که این رشته نوعش چیه از بین NOT , A,B,C,D

ولی مثلا وقتی دستور زیر رو می نویسم

if ( result ==3)
M[i].set = 'C';
پیام زیر ظاهر میشه

Lvalue required in function main()
وبرای دستور زیر

if (result == 0)
M[i].set ='NOT';
پیام زیر ظاهر میشه

character constant must be one or two characters long in function main()
Lvalue required in function main()
تمام برنامه فقط ارورهایی میگیره که توی اون M[i].set هست وبرای M[i].str , M[i].len هیچ پیامی نمیده منظورم اینکه مشکل از M[i].set هست .از اینکه برنامه ام رو نمیتونم بذارم شرمنده چون طولانی وپیچیده هست.
اگه تونستید حدس بزنید که چرا واسم اشکال میگیره خیلی خوشحال میشم حتی اگه فقط یه حدس باشه!
باتشکر

mortezamsp
جمعه 18 دی 1388, 19:40 عصر
برای کپی رشته از این دستور استفاده کن :

#include<string.h>
.
.
.
if (result == 0)
strcpy( M[i].set , "NOT" ) ;

و برای انتساب کاراکتر به رشته یا همان دستور بالا رو اجرا کن یا این :


if ( result ==3)
M[i].set[0] = 'C';