我应该提到我正在使用 Turbo C++(是的旧版本),因为我的学校要求它。
我有这样的结构:
struct move{
int power;
int pp;
char name[10];
};
如果我这样做,当我尝试创建一个新变量时:
move tackle;
tackle.pp = 10;
tackle.power = 20;
tackle.name = "tackle";
我得到一个错误:
错误 NONAME00.CPP 11:需要左值
但这行得通:
move tackle = {20, 10, "tackle"}
有效。
我做错了什么?
附言第 11 行是 tackle.name = "tackle"
,抱歉,如果我之前不清楚。
最佳答案
你不能给一个数组赋值,但是你可以初始化它。
tackle.name = "tackle";
是一个赋值,而
move tackle = {20, 10, "tackle"};
是一个初始化。
要替换数组的内容,使用strcpy
:
strcpy(tackle.name, "tackle");
或者,更好的是,如果允许,请使用 string
:
#include <string>
struct move{
int power;
int pp;
string name;
};
关于c++ - 在 Turbo C++ 中将字符串分配给结构中的 char 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31272411/