例如,如果c[20] = "Six of Spades"
,则返回6,如果c[20] = "Nine of Hearts"
,则返回9,依此类推。因此返回的值仅基于字符串中的第一个单词。有没有一种简单的方法可以做这样的事情?
答案 0 :(得分:5)
int cardValue(char* card)
{
char* values[] = {"One", "Two", "Three" ... };
for(int i = 0; i < sizeof(values) / sizeof(values[0]); i++)
{
size_t len = strlen(values[i]);
if (strncmp(values[i], card, len) == 0)
{
return i + 1;
}
}
return -1; // error
}
当你到达Ace,King,Queen等时,你可能需要一些特殊的案件处理。
答案 1 :(得分:1)
否
你可以自己实现它,通过捕获字符串中的第一个单词(例如使用strtok()
),然后根据该子字符串,返回相应的数字。