2

刚开始使用 c++,我正在制作二十一点。我已将其设置为玩家的手牌是一串牌,例如:hand[1] = ❤2 hand[2] = ❤J

我已经创建了一个函数来将卡片数组中所有卡片的值相加,但我遇到了一个问题:

int handValue(string hand[]){
    int handSum;

    //returns value of total amount of cards in hand+1
    int numCards = nextCard(hand);
    string value;
    for (int i = 0; i < numCards ; i++){
        //Checks the second character of a card to find a value (1,2,3...T,J,Q,K)
        string value = hand[i][1];
        if (value == "T" || value == "J"|| value == "Q"  || value == "K") {
            handSum += 10;
        }
    }
    return handSum;
}

这条线是我遇到问题的地方:

string card = hand[i][1];

产生错误:

从 'char' 到 'const char*' 的转换无效。

为什么我会收到此错误,我该如何解决?谢谢!

4

2 回答 2

0

小心注意types你的变量。c++ 是一种strongly typed可以区分one char和的语言an array of chars。不要被const char *尚未混淆...将其视为您的数组。

char fullValue[] = hand[i]; //gets the element at position i
char oneLetter = fullValue[1]; //gets char 1 from our fullValue array
于 2013-06-04T02:18:35.683 回答
0

hands[i][1]返回 achar并且没有std::string将单个char作为参数的类的构造函数。

这里不需要字符串,您可以只使用char类型:

    char value = hands[i][1];
    if (value == 'T' || value == 'J'|| value == 'Q'  || value == 'K') 
        handSum += value;
于 2013-06-04T02:21:56.143 回答