2010-07-21 3 views
7

Ich programmiere ein Programm in C++ (typisches Spiel), in dem Sie einen Buchstaben erraten müssen und es überprüft, ob es in einer Zeichenfolge vorhanden ist.Ich möchte sehen, ob ein Zeichen in einer Zeichenfolge vorhanden ist

Zum Beispiel

GeheimzeichenketteK: Ich mag zu programmieren.

Guess1: 'a'

Anzeige:. .... .. ..... ein ...

Etc.

Aber ich weiß nicht, wie zu sehen, ob ein Zeichen in dieser geheimen Zeichenfolge ist.

ich std bin mit :: string (obligatorisch)

Jede Hilfe ist willkommen!

+1

+1 für die Verwendung von Zeichenfolge anstelle von char-Arrays! –

+1

@Amarteep I HATE Konvertierungen zwischen diesen beiden ... +1 zu Ihrem Kommentar. –

+1

@AnonymousPi +1 unendliche Kommentarschleife ': -P' –

Antwort

14

Beginnen Sie mit dem Suchen in einer Dokumentation wie: http://www.cplusplus.com/reference/string/string/. (Hinweis: Sie wollen "finden" etwas ...)

+3

+1, weil du Dokumentation angeboten hast, anstatt auf die genaue Antwort auf diese offensichtliche Hausaufgabenfrage zu zeigen – paercebal

+3

@paercebal: Woher weißt du, dass es nicht nur ein Bastler ist, der lernt Um ein Spielprogramm zu schreiben? Die meisten Hausaufgaben haben dazu geführt, Char-Arrays zu verwenden und Bibliotheksfunktionen zu verbieten. Außerdem gibt man ihnen nicht das ganze Spiel, indem man ihnen sagt, welche Funktion ein Zeichen in einem String findet die Dokumentation) –

+0

@Amarteep: Die Art wie die Frage formuliert wird, die Frage selbst, und einige Hinweise wie "Ich benutze std :: string (** obligatorisch **)". cpluplus.com ist eine sehr gute C++ Referenz und der Autor der Antwort beide zeigten darauf und gaben einen Hinweis ...^_^... – paercebal

8

können Sie verwenden find_first_of

+0

Sie können, aber es ist nicht wirklich für diesen Job gedacht. Es ist beabsichtigt, einen beliebigen Zeichensatz zu finden. –

+0

Die Funktion ist auch überladen, um nur ein Zeichen zu nehmen – Tomaka17

+2

Ganz zu schweigen davon, dass diese Zeichengruppe sehr wohl aus einem einzigen Zeichen bestehen könnte. Die Verwendung von 'string :: find' würde Ihren Code etwas prägnanter machen, da der Unterschied in der Funktionalität mit' string :: find_first_of 'in diesem Fall irrelevant ist. – JAB

5

Es gibt mehrere Methoden in std :: string, die helfen würde:

find() rfind() find_first_of() find_last_of() substr()