从2D字符串数组中打印出字符串

时间:2013-03-27 13:40:45

标签: c++ arrays string 2d

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

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

如果我尝试打印,请按照这样说'WOL-LA-CHEE':

cout<<链接[0] [1]

我的输出如下:

电子

我做错了什么?

3 个答案:

答案 0 :(得分:5)

如果在单引号之间放置文本,则表示字符文字。由于std::stringchar中存在const char *的副本构造函数,因此这适用于一个字符,但它不会像您认为的那样对多个字符执行操作。你很可能想把字符串放在双引号之间:

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

Stuff to read about multicharacter literals.

答案 1 :(得分:2)

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

答案 2 :(得分:2)

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

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

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