将字符串分配给Turbo C ++中

时间:2015-07-07 15:05:34

标签: c++ string struct char

我应该提一下,我使用Turbo C ++(是旧的),因为我的学校需要它。

我有这样的结构:

struct move{
 int power;
 int pp;
 char name[10];
 };

当我尝试创建一个新变量时:

move tackle;
tackle.pp = 10;
tackle.power = 20;
tackle.name = "tackle";

我收到错误:

Error NONAME00.CPP 11: Lvalue required

但这有效:

move tackle = {20, 10, "tackle"}

它有效。

我做错了什么?

P.S。第11行是tackle.name = "tackle",如果我之前不清楚则很抱歉。

3 个答案:

答案 0 :(得分:3)

您无法分配数组,但可以初始化它。

tackle.name = "tackle";

是一项作业,而

move tackle = {20, 10, "tackle"};

是初始化。

要替换数组的内容,请使用strcpy

strcpy(tackle.name, "tackle");

或者,更好的是,如果您被允许,请使用string

#include <string>

struct move{
 int power;
 int pp;
 string name;
 };

答案 1 :(得分:2)

您正在使用c风格的字符串,您应该通过

初始化它
strcpy(tackle.name, "tackle");

答案 2 :(得分:0)

这一行

tackle.name = "tackle";

尝试将一个数组分配给另一个数组,而不是C或C ++中支持的操作。

然而,char name[10] = "tackle"之类的初始化在标准中很好,并且受到支持。