boost :: ifind_first mit std :: string-Objekten

8

Ich versuche, Boost-String-Algorithmen für die Suche nach Groß- / Kleinschreibung zu verwenden.
Total Neuling hier.

Wenn ich es so benutze, erhalte ich einen Fehler.

%Vor%

Das Konvertieren in Zeichenzeiger löst das Problem.

%Vor%

Gibt es eine Möglichkeit, std :: string-Objekte direkt zu durchsuchen?

Vielleicht gibt es auch eine andere Möglichkeit zu wissen, ob eine Zeichenfolge in einer anderen Zeichenfolge vorhanden ist, ohne dabei die Groß- / Kleinschreibung zu beachten?

    
Andrew 10.08.2009, 16:39
quelle

3 Antworten

12

Sie müssen boost :: iterator_range verwenden. Das funktioniert:

%Vor%

EDIT: Die Verwendung eines konstanten Iteratorbereichs in typedef erlaubt die Übergabe eines temporären Bereichs.

    
Fred Larson 10.08.2009, 17:42
quelle
0

In diesem Fall wird ein Vergleich der Zeichenketten ohne Berücksichtigung der Groß- und Kleinschreibung durchgeführt, ohne die Zeichenkette zu ändern.

%Vor%

    
Glen 10.08.2009 16:57
quelle
0

(char*)str.c_str() führt tatsächlich eine const_cast : const_cast<char*>(str.c_str()) aus. Ich bezweifle ernsthaft, dass es notwendig ist, const wegzuwerfen, um die Zeichenfolge zu durchsuchen.

Ich habe nie boost::ifind_first verwendet, aber laut Dokumentation , die Funktion benötigt zwei Bereiche. Ich nehme an, es gibt eine Möglichkeit, eine Reihe von einer Schnur zu erstellen? OTOH, ich würde mich fragen, ob eine Saite nicht perfekt ist.

Es kann hilfreich sein, wenn Sie die vollständigen Fehlermeldungen des verwendeten Compilers posten.

    
sbi 10.08.2009 17:27
quelle

Tags und Links