以下の関数は常にtrueを返します。私はポインターを比較していると思います。ポインタだけでなく値を比較するにはどうしたらいいですか?Cの2つのポインタの値を比較する方法
struct Card {
const char *suit;
const char *face;
};
...
struct Card hand[HAND_SIZE];
...
//Determine whether the hand contains a pair.
bool hasPair(struct Card wHand[]) {
bool result = false;
for (unsigned i = 0; i < HAND_SIZE; ++i) {
for (unsigned j = 0; j < HAND_SIZE; ++j) {
if(wHand[i].face == wHand[j].face && wHand[i].suit == wHand[j].suit) {
result = true;
}
}
}
return result;
}
構造体で定数が宣言されているのはなぜですか? –
それはあなた自身とカードを比較するからです。 – tkausl
他の人が提起した問題との比較に加えて、ほとんどのカードゲームの**ペア**は同じ* face *値を持つ2枚のカードですが、必ずしも同じ* suit *である必要はありません。同じカードを比較しているように見えますが、おそらく面倒で比較する必要があるでしょう。 @selbie。 – selbie