如何将字符串分配给INT变量

How do I assign a string to an int variable?

本文关键字:INT 变量 分配 字符串      更新时间:2023-10-16

我正在制作一张卡和甲板程序,我对如何在构造函数中实现功能以使卡等等等于" ace" jack",而感到有些困惑"皇后"等。取决于数字。

Card::Card(char suiter, int ranker) {
    suit = suiter;
    rank = ranker;
    if (rank == 1) {
        rank = "Ace";   //Assign rank to "Ace" if the number equals 1
    }
}

您可以尝试使用枚举。这实际上不是字符串,而是一组不共享价值的常数ints。

enum CardRank
{
  Ace,
  Two,
... ... ...
  Jack,
  Queen,
  King
};

这将创建一个新的CardRank,您可以在代码中仅用于卡等级。您只需使您的rank成员成为CardRank类型,就可以用名称参考其值。

在引擎盖下,这是出于大多数目的和目的,一个无符号的int只能接受从 Ace(0(到 King(12(

鉴于我没有看到您试图将此字符串写入屏幕,这可能是要走的路。即使您 计划将此字符串写出,您可能还是要使用此枚举,并且仅在需要使用这样的查找时拔出字符串含义:

std::string RankNames[] =
{
  "Ace",
  "2",
... ... ... ...
  "Jack",
  "Queen",
  "King"
};
CardRank rank = Ace;
std::cout << RankNames[rank] << std::endl;

您可能不想在构造函数中执行此操作。相反,当等级值相等的特定数字时,您可以更改Ostream的输出。例如:

ostream & operator<<(ostream &out, const Card &rhs) {   
    if (rhs.rank == 1) {
                out << "Ace of ";
    }
   }

您不能将等级作为我的int和下一个字符串类型。如果您想创建类似的内容,请尝试将字符串类型用于等级。ho