String überprüfen
-
Hallo Leute.
Ich habe nun längere Zeit nichts mehr mit Cpp gemacht und nun hatte ich vor mit den
Zeigern ein wenig weiter zu arbeiten.
Ich dachte ich mir bastel mir einen Namensgenerator, der steht. Und nun sollen manche Buchstaben nicht hintereinander stehen.
Es kommt z.b. ein Name mit 5 Zeichen rausAFXUDUnd das X soll nicht nach dem F kommen.
Dies möchte ich überprüfen.Nun wurde mir schon mal hier im Forum geschrieben das ich die neuen String klassen nutzen solle wenn sie mir schon zur Verfügung stehen.
Und wie kann ich nun genau das Testen?Gruß

-
Oh man solange gesucht und nun finde ich etwas nützliches...
Ist es das?
-
std::string str = "AFXUD"; if (str.find('F') < str.find('X')) // ...
-
Da gibt es so viele Möglichkeiten. Und du beschreibst gar nicht, was dir Schwierigkeiten macht. Daher kann man dir schwer Tipps geben. Und als du dann noch begin vorschlägst als Lösung
, führt zu kompletter Verwirrung, weil ich da gar nicht die Verbindung zu deiner Frage sehe, es sei denn, du weißt überhaupt nicht, wie man mit strings umgeht. Dann wäre nämlich das deine Frage.Ein paar Ideen:
-Wenn es nur um FX geht: Suchfunktion des Strings nach "FX" benutzen
-Wenn es um viele verbotene Kombos geht, vor allem, wenn diese länger werden können: String von Hand durchgehen, zu jedem Muster speichern, ob es derzeit noch möglich ist und an welcher Position man sich im Pattern befindet
Wenn es elegant werden soll:
http://en.wikipedia.org/wiki/String_searching_algorithm#Algorithms_using_a_finite_set_of_patterns
-Wenn es auch kompliziertere Regeln gibt: So wie oben, aber mit eben komplizierteren Regeln.Die wohl beste Idee:
-Den Erzeugungsmechanismus so anpassen, dass die unerwünschten Muster gar nicht erst entstehen können.
-
Danke für die Antworten!
Ja ich denke das ist die beste Möglichkeit:Die wohl beste Idee:
-Den Erzeugungsmechanismus so anpassen, dass die unerwünschten Muster gar nicht erst entstehen können.Das versuche ich das mal

-
Regex
Zum überprüfen meiner Regex verwende ich immer das hier:
http://rubular.com/
Ist zwar für Ruby gedacht, aber hat bei mir bis jetzt mit den Regex aus der std auch immer funktioniert.
Regex sind ultimativ um Strings auf irgendwelche Folgen von Zeichen auszuwerten, man kann damit auch gewisse Teilstrings aus Strings capturen.