-1

所以,我的数组看起来像这样:

string links[26][4];
links[0][0] = 'A';
links[0][1] = 'WOL-LA-CHEE';

如果我尝试打印,可以这样说“WOL-LA-CHEE”:

cout <<链接[0][1]

我的输出如下所示:

我究竟做错了什么?

4

3 回答 3

5

如果将文本放在单引号之间,则表示字符文字。std::string由于fromchar和有复制构造函数const char *,这适用于一个字符,但它不会像您认为的那样对多个字符起作用。您很可能希望将字符串放在双引号之间:

 links[0][1] = "WOL-LA-CHEE";

阅读有关多字符文字的资料。

于 2013-03-27T13:42:53.980 回答
2

将字符串放在双引号中。"WOL-LA-CHEE". 单引号声明一个字符常量,在这种情况下它的值是未指定的。

于 2013-03-27T13:42:41.430 回答
2

'WOL-LA-CHEE'是一个多字符文字。它具有实现定义的值,并且是一个int. 似乎您想要一个字符串文字:

links[0][0] = "A";
links[0][1] = "WOL-LA-CHEE";

分配'A'以前有效,因为这是一个普通的字符文字并且具有 type charstd::string有一个重载operator=需要一个char.

于 2013-03-27T13:43:27.683 回答