Zum Beispiel, wenn c[20] = "Six of Spades"
, dann 6 zurückgegeben wird, wenn c[20] = "Nine of Hearts"
, dann 9 zurückgegeben wird, und so weiter. Der zurückgegebene Wert basiert also nur auf dem ersten Wort in der Zeichenfolge. Gibt es eine einfache Methode, um so etwas zu tun?Geben Sie einen bestimmten Wert basierend auf dem Inhalt einer Zeichenfolge zurück
0
A
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.
Verwandte Themen
- 1. Geben Sie getItemViewType basierend auf dem Datenbankattribut zurück
- 2. Geben Sie einen Text basierend auf dem Datum ein
- 3. Suchen Sie ein Array nach einer bestimmten Zeichenfolge und geben Sie eine zugehörige Zeichenfolge zurück
- 4. FMDatabaseQueue So geben Sie einen Wert zurück
- 5. Ersetzen Sie Inhalt in einer Zeichenfolge basierend auf Regex.Matches MatchCollection
- 6. Dynamischer JComboBox-Inhalt basierend auf dem Inhalt einer anderen JComboBox
- 7. Erhalte einen Wert basierend auf dem Wert einer anderen Spalte
- 8. Geben Sie alle Spalten zwischen Daten ohne einen bestimmten Wert aus einer anderen Spalte zurück
- 9. Scrapy - Wählen Sie einen bestimmten Link basierend auf dem Text
- 10. Sortieren Benutzer basierend auf bestimmten Wert (Zeichenfolge) in Laravel
- 11. Geben Sie JSON von einer beliebigen ASP.NET MVC-Controller-Aktion basierend auf einem Parameter zurück.
- 12. Geben Sie den Wert der MySQL-Abfrage zurück, wenn sie nicht leer ist. Geben Sie andernfalls eine leere Zeichenfolge zurück
- 13. Geben Sie eine Zeichenfolge/einen Durchlauf als Referenz zurück
- 14. Setzen Sie eine Zeichenfolge auf einen Wert in einer Zelle?
- 15. Nicht alle Codepfade geben einen Wert zurück, wenn sie
- 16. Synchronisieren basierend auf dem Inhalt der Karte
- 17. So geben Sie eine bestimmte Zeichenfolge zurück
- 18. geben Sie eine Zeichenfolge in Javascript zurück
- 19. Ranglisten basierend auf dem Wert einer Spalte
- 20. Passen NSTextField Inhalt Größe basierend auf dem String-Wert
- 21. So führen Sie Makro basierend auf dem Inhalt der Zelle
- 22. Aufteilen einer Zeichenfolge basierend auf einem bestimmten Satz von Wörtern
- 23. SQL - Geteilte Tabelle basierend auf dem Inhalt einer Spalte
- 24. So geben Sie einen Wert im Abschlussblock zurück
- 25. Beenden von raw_input basierend auf dem ASCII-Wert der Zeichenfolge
- 26. Legen Sie ng-Optionen Wert basierend auf Zeichenfolge AJAX-Wert
- 27. Oracle So geben Sie eine Zeichenfolge in einem bestimmten Format zurück
- 28. C++ Builder - Kopieren Sie einen Link zu einer Zeichenfolge basierend auf bestimmten Wörtern
- 29. Wählen Sie einen Wert aus der Datenbank und geben Sie einen anderen Wert in Django zurück
- 30. Map Wert basierend auf bestimmten Intervallen
@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. –
@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