根据字符串的内容返回特定值

时间:2017-04-12 22:45:12

标签: c string

例如,如果c[20] = "Six of Spades",则返回6,如果c[20] = "Nine of Hearts",则返回9,依此类推。因此返回的值仅基于字符串中的第一个单词。有没有一种简单的方法可以做这样的事情?

2 个答案:

答案 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()),然后根据该子字符串,返回相应的数字。