如何为ASCII码初始化静态const char数组[C ++]

时间:2011-02-11 07:10:13

标签: c++ casting

我想在构造函数中用ASCII代码初始化一个静态const char数组,这是我的代码:

class Card
{ 
public:
    Suit(void)
    {    
        static const char *Suit[4] = {0x03, 0x04, 0x05, 0x06}; // here's the problem
        static const string *Rank[ 13 ] = {'A', '2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K'}; // and here.
}

然而,我收到了很多错误,说明

  • '初始化':无法从'char'转换为'const std :: string *'

  • '初始化':无法从'int'转换为'const std :: string *'

请帮帮我!非常感谢你。

2 个答案:

答案 0 :(得分:4)

您正在初始化一个字符数组,因此您需要:

static const char Suit[] = {0x03, 0x04, 0x05, 0x06};
static const char Rank[] = {'A', '2', ...};

您正在使用的表单是声明字符串数组,然后使用单个字符串初始化它们。如果你确实希望Rank是一个字符串数组,那么初始值设定项必须是双引号:

static const char* Rank[] = {"A", "2", ...};

或:

static const std::string Rank[] = {"A", "2", ...};

答案 1 :(得分:0)

字符数组的类型为const char[]。你有什么,const char*[]是一个指针数组。