Lvalue需要错误TurboC

时间:2013-10-30 12:13:37

标签: c

char activity[30];
int choice;

scanf("%d", &choice);
if(choice==1){
    activity = "Sedentary";
}
else if(choice==2){
    activity = "Light Activity";
}
else if(choice==3){
    activity = "Moderate Activity";
}
else if(choice==4){
    activity = "Very Active";
}
else if(choice==5){
    activity = "Extra Active";
}

编译时,显示左值必需错误。我不知道这意味着什么,有人可以帮助我。 抱歉我的英文。

编辑 - 标题TurboC(错字)

2 个答案:

答案 0 :(得分:1)

在C中,您必须使用strcpy()复制字符串。

#include<string.h>

...

if(choice==1){
    strcpy(activity, "Sedentary");
}
else if(choice==2){
    strcpy(activity, "Light Activity");
}
else if(choice==3){
    strcpy(activity, "Moderate Activity");
}
else if(choice==4){
    strcpy(activity, "Very Active");
}
else if(choice==5){
    strcpy(activity, "Extra Active");
}

答案 1 :(得分:0)

此处activity = "Sedentary";是数组的起始地址,如果您在上面执行代码,则类似于0x123344 = "Sedentary" 所以在这里使用strcpy()

strcpy(activity, "Sedentary");

然后它不应该显示Lvalue错误。