我正在制作卡片处理游戏。我在将字符串解析为组件时遇到问题,以便跟踪正在绘制的套装和值。
const string rank[] = { "Ace", "2", "3", "4", "5", "6", "7",
"8", "9", "10", "Jack", "Queen", "King" };
const string suit[] = { "Clubs", "Diamonds", "Hearts", "Spades" };
string random_card(bool verbose=false) {
string card;
card = rank[ rand()%13 ];
card += " of ";
card += suit[ rand()%4 ];
if (verbose)
cout << card << "\n";
return card;
}
如何将卡拆分为组件以跟踪表中的套装和值?
编辑:我必须使用字符串进行此分配。我无法改变卡的生成方式。我必须将字符串解析为组件并跟踪表中每个套装的值,然后我需要格式化并打印到stdout中。
答案 0 :(得分:0)
不要使用字符串来表示卡片,只需定义一个简单的结构
struct Card
{
int suit;
int rank;
};
答案 1 :(得分:0)
尝试这样的事情:
string delimiter = " of ";
int delimiter_length = delimiter.size();
string card = "Ace of Clubs";
int del_begin = card.find_first_of(delimiter);
int del_end = del_begin + delimiter_length;
string rank = card.substr(0, del_begin);
string suit = card.substr(del_end, card.size() - del_end);