我最终这样做了,
struct init
{
CHAR Name[65];
};
void main()
{
init i;
char* _Name = "Name";
int _int = 0;
while (_Name[_int] != NULL)
{
i.Name[_int] = _Name[_int];
_int++;
}
}
答案 0 :(得分:5)
为您的结构提供构造函数:
struct init
{
char Name[65];
init( const char * s ) {
strcpy( Name, s );
}
};
现在你可以说:
init it( "fred" );
即使没有构造函数,也可以初始化它:
init it = { "fred" };
答案 1 :(得分:2)
在C ++中,struct可以有一个构造函数,就像一个类。将初始化代码移动到构造函数。还可以考虑使用std :: string而不是char数组。
struct init
{
std::string name;
init (const std::string &n) : name (n)
{
}
};
答案 2 :(得分:2)
您还可以使用strcpy()将字符串数据复制到char数组中。
strcpy(i.Name, "Name");