C++ 如何将字符串赋给int变量?
我正在制作一个卡片和套牌程序,对于如何在构造器中实现一个功能,使卡片等级等于“Ace”“Jack”“King”“Queen”等等,我有点困惑,这取决于数字C++ 如何将字符串赋给int变量?,c++,converter,C++,Converter,我正在制作一个卡片和套牌程序,对于如何在构造器中实现一个功能,使卡片等级等于“Ace”“Jack”“King”“Queen”等等,我有点困惑,这取决于数字 Card::Card(char suiter, int ranker) { suit = suiter; rank = ranker; if (rank == 1) { rank = "Ace"; //Assign rank to "Ace" if the number equals 1 }
Card::Card(char suiter, int ranker) {
suit = suiter;
rank = ranker;
if (rank == 1) {
rank = "Ace"; //Assign rank to "Ace" if the number equals 1
}
}
不能使用rank作为i int,next作为i字符串类型。如果您想创建类似的内容,请尝试使用字符串类型作为秩。
ho您可能不希望在构造函数中执行此操作。相反,当秩值等于特定数字时,可以更改ostream的输出。例如:
ostream & operator<<(ostream &out, const Card &rhs) {
if (rhs.rank == 1) {
out << "Ace of ";
}
}
ostream&operator您可以尝试使用枚举。这不是字面上的字符串,而是一组保证不共享值的常量整数
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;
std::string RankNames[]=
{
“王牌”,
"2",
... ... ... ...
“杰克”,
“女王”,
“国王”
};
CardRank=Ace;
std::cout“Ace”
怎么可以是一个分配给int的数字?您不能将字符串分配给int。是的,对不起。。我对编码相当陌生。我只是不知道如何处理这样的问题。将“Ace”赋值给rank可能不是正确的方法,这就是为什么我要问这个问题。使用字符串变量怎么样?然后您可以同时赋值“4”(数字)和“Ace”(字符串)