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

Accessing individual elements' characters using an array parameter in c++

本文关键字:单个 访问 元素 字符 参数 数组 c++      更新时间:2023-10-16

刚刚开始学习c++,我正在制作21点。我将玩家的手牌设置为一串纸牌,例如:手牌[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*'的转换无效。

为什么我得到这个错误,我如何修复它?谢谢!

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

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

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

要注意变量的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