我在C语言中模拟继承,但对这种语言不太熟悉下面是一些代码。Visual Studio有一条emp.name=n
的错误消息,其中指出:
表达式必须是可修改的左值。
如何更改它以便可以修改?
typedef struct {
char name[20];
double salary;
} Employee;
Employee newEmployee(char n[], double s)
{
Employee emp;
emp.name=n;
emp.salary=s;
return emp;
}
最佳答案
您需要将数据从n
复制到Employee.name
:
strncpy(emp.name, n, 20);
但是,如果
n
不是以空结尾,则会遇到问题使用以下代码确保emp.name
将是以空结尾的字符串:strncpy(emp.name, n, 19);
emp.name[19] = '\0';
关于c - 如何编辑字符串(在C结构中),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10543776/