错误C2440:'=':无法从'char [5]'转换为'char [20]'

Sim*_*ons 3 c++ struct visual-c++

这与我以前的帖子有关

我创建了一个Struct:

struct buffer
{
    char ProjectName[20];
       char ProjectID[20];
};
Run Code Online (Sandbox Code Playgroud)

现在,当我尝试为其分配值时:

buffer buf;
buf.ProjectID = "3174";
buf.ProjectName = "NDS";
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

error C2440: '=' : cannot convert from 'char [5]' to 'char [20]'
Run Code Online (Sandbox Code Playgroud)

并解决这个问题,我尝试减少结构的大小,如下所示(不能这样做):

struct buffer
{

    char ProjectName[4];
    char ProjectID[5];
};
Run Code Online (Sandbox Code Playgroud)

和得到 error C2106: '=' : left operand must be l-value

jab*_*jab 7

您必须将字符串复制到数组中:

strcpy(buf.ProjectName, "3174");
Run Code Online (Sandbox Code Playgroud)

注意要复制到数组中的字符串的长度