c++ - 在 Turbo C++ 中将字符串分配给结构中的 char 数组

标签 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";

我得到一个错误:

错误 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/

相关文章:

c++ - 这个特定用例的一个很好的排序算法

c++ - c++中虚方法的问题

c++ - 在 64 位 C++ 程序中使用 32 位库

c++ - 确定两个字符串是否相差一个字符的最快方法

C 链表集(抽象数据类型)

c++ - 如何以正确的方式学习 C++ 编程

删除字符串的重复元素

javascript - 匹配不包含某个子串的子串

json - 编码嵌套对象

c - 有没有办法在源文件之间共享 'struct' 而不是在头文件中公开它?