C ++ vergleicht Zeichenfolgen mit "%" char

8

Ich möchte einen Zeichenfolgenvergleich in C ++ implementieren, der Zeichenfolgen mit einem "%" Zeichen vergleicht.

Ich könnte es so machen:

%Vor%

Da ich dies in einer Schleife über viele Strings mache, frage ich mich, ob es eine Methode ohne zwei unterschiedliche String-Traversals für find und equal gibt (vielleicht mit einem Prädikat, das den Vergleich an irgendeiner Stelle abbrechen kann) . Boost ist in Ordnung.

    
Felix Dombek 05.12.2014, 18:44
quelle

2 Antworten

12

Sie können std::mismatch ausprobieren. Der folgende Code wird mit C ++ 14 ausgeführt (erfordert die Template-Überladung mit zwei Iteratorpaaren), funktioniert aber in C ++ 11 (oder 03, ohne lambdas) sehr ähnlich:

%Vor%

Demo .

    
Columbo 05.12.2014, 19:07
quelle
2

Hier ist ein hackischer Weg:

%Vor%

Die Idee ist, ein Prädikat zu erstellen "Charakter ist das gleiche wie in der anderen Zeichenfolge und nicht ein '%' ."

Es hängt davon ab, dass str2 lang genug ist, aber auch der Code in der Frage.

    
Angew 05.12.2014 19:01
quelle

Tags und Links