使用c ++中的数组参数访问单个元素的字符

时间:2013-06-04 01:54:34

标签: c++ arrays parameters

刚开始使用c ++,我正在制作二十一点。我已经设置了这么一个玩家的手是一串牌,例如:手[1] =❤2手[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 *'的转换无效。

为什么我收到此错误以及如何解决?谢谢!

2 个答案:

答案 0 :(得分:0)

小心注意变量的types。 c ++是一种strongly typed语言,用于区分one charan 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

答案 1 :(得分:0)

hands[i][1]返回charstd::string类的构造函数不会将char作为参数。

此处不需要字符串,您只需使用char类型:

    char value = hands[i][1];
    if (value == 'T' || value == 'J'|| value == 'Q'  || value == 'K') 
        handSum += value;