我在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/

10-12 03:15