我正在尝试将一些文本值添加到数组中,例如
- 一些值 1
- 一些价值 2
- 一些价值 3
- ETC..
这是我遵循的程序:
char values_array[3][80];
values_array[0][80] = "Rock and Rolla";
cout << values_array[0] << endl;
我收到以下错误:
invalid conversion from `const char*' to `char'
我正在尝试将一些文本值添加到数组中,例如
这是我遵循的程序:
char values_array[3][80];
values_array[0][80] = "Rock and Rolla";
cout << values_array[0] << endl;
我收到以下错误:
invalid conversion from `const char*' to `char'
错误消息准确地说明了问题所在。该分配试图将 a const char*
(字符串字符串文字的类型)分配给 a ,即char
的类型values_array[0][80]
。不正确的立即响应将其更改为:
values_array[0] = "Rock and Rolla";
但这也是不正确的,因为无法分配数组。复制字符串文字,或者最好使用 astd::vector<std::string>
代替:
std::vector<std::string> values;
values.push_back("Rock and Rolla");
std::cout << values[0] << std::endl;
在将字符串文字(或其他字符串)复制到数组元素时,使用 astd::vector<std::string>
可以消除对可存储字符串数量的硬编码限制以及潜在的缓冲区溢出问题。
您正在尝试分配"Rock and Rolla"
,它是一个char[]
, into values_array[0][80]
,它有 type char
。你可能想要的是:
char values_array[3][80]
strcpy(values_array[0], "Rock and Rolla");
不过,您应该使用std::string
而不是char*
在 C++ 中表示字符串。代码将是:
std::string values_array[3];
values_array[0] = "Rock and Rolla";