所以,我的数组看起来像这样:
string links[26][4];
links[0][0] = 'A';
links[0][1] = 'WOL-LA-CHEE';
如果我尝试打印,可以这样说“WOL-LA-CHEE”:
cout <<链接[0][1]
我的输出如下所示:
乙
我究竟做错了什么?
如果将文本放在单引号之间,则表示字符文字。std::string
由于fromchar
和有复制构造函数const char *
,这适用于一个字符,但它不会像您认为的那样对多个字符起作用。您很可能希望将字符串放在双引号之间:
links[0][1] = "WOL-LA-CHEE";
将字符串放在双引号中。"WOL-LA-CHEE"
. 单引号声明一个字符常量,在这种情况下它的值是未指定的。
'WOL-LA-CHEE'
是一个多字符文字。它具有实现定义的值,并且是一个int
. 似乎您想要一个字符串文字:
links[0][0] = "A";
links[0][1] = "WOL-LA-CHEE";
分配'A'
以前有效,因为这是一个普通的字符文字并且具有 type char
。std::string
有一个重载operator=
需要一个char
.