所以,我的数组看起来像这样:
string links[26][4];
links[0][0] = 'A';
links[0][1] = 'WOL-LA-CHEE';
如果我尝试打印,请按照这样说'WOL-LA-CHEE':
cout<<链接[0] [1]
我的输出如下:
电子
我做错了什么?
答案 0 :(得分:5)
如果在单引号之间放置文本,则表示字符文字。由于std::string
和char
中存在const char *
的副本构造函数,因此这适用于一个字符,但它不会像您认为的那样对多个字符执行操作。你很可能想把字符串放在双引号之间:
links[0][1] = "WOL-LA-CHEE";
答案 1 :(得分:2)
将字符串放在双引号中。 "WOL-LA-CHEE"
。单引号声明一个字符常量,在这种情况下,其值未指定。
答案 2 :(得分:2)
'WOL-LA-CHEE'
是一个多字符文字。它具有实现定义的值,并且是int
。看来你想要一个字符串文字:
links[0][0] = "A";
links[0][1] = "WOL-LA-CHEE";
分配'A'
之前有效,因为这是一个普通的字符文字并且类型为char
。 std::string
的重载为operator=
,需要char
。