IntelliSense:表达式必须是可修改的左值+函数

时间:2014-12-20 11:08:00

标签: c++

一个非常容易的问题,但我无法解决它。 我在这里

struct Person{
    char name[20];
    char family[20];
    char tel[20]; 
};

Person p[40];
string newName 

p[ numPerson ].name = newName;

我想编写一个函数,在其中我可以用newName替换p [numPerson] .name但是出现错误!:IntelliSense:expression必须是可修改的左值 希望有人可以帮忙!

2 个答案:

答案 0 :(得分:0)

char name[20];
string newName

这两者都是不同的物种。而且你知道不同的物种很容易混在一起。

更好的方法是全部使用std :: string。

答案 1 :(得分:0)

您可以通过以下方法解决此问题 1.

 struct Person{
        char name[20];
        char family[20];
        char tel[20];
    }Person p[40];
char  newName[20];
strcpy(p[numPerson].name,newName);

2。
注意:如果您想更改family,tel e.t.c值,那么也要创建它们的数据类型字符串。

struct Person{
            string name;
            char family[20];
            char tel[20];
        }Person p[40];
    string newName;
    p[numPerson].name = newName;