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?
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.
(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.