2017-04-12 2 views

Antwort

1

Keine

Sie es aber selbst implementieren kann, durch das erste Wort aus dem String Fischen (beispielsweise mit strtok()), und dann auf der Grundlage dieses Unter, kehren die entsprechende Nummer.

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 
} 

Sie können einigen Sonderfall benötigen Handhabung, wenn Sie zu Ace bekommen, König, Dame usw.

+2

@chux: Im Gegenteil, wenn 'Werte [i]' 'ist "Six"' und ' card 'ist' 'Six of Pikes' ', dann hat' strncmp() 'hier die nützliche Eigenschaft, eine korrekte Antwort auf die Frage zu geben, wenn' strcmp() 'nicht ist. –

+0

@PaulGriffiths \t Ich stehe korrigiert. (Obwohl ich "size_t len" verwendet hätte, um unnötige Typänderungen zu vermeiden.) Natürlich, wenn das Deck einen "Vierzehn der Herzen" hätte (http://www.djmcadam.com/six-handed-five-hundert.html)) das könnte mit '' Four '' mit 7 Handed 500 kollidieren ... ;-) – chux

Verwandte Themen