Hallo!
Ich habe hier ein technisches Problem und würde gerne mal hören wie die fortgeschrittenen Programmierer dieses angehen würden.
Also ich habe zwei QStrings mit nahezu identischen Inhalt. Wie kann man am elegantesten die Unterschiede ermitteln?
Beispiel:
String1: "Das ist ein Test"
String2: "Das war ein Test"
Also das er mir "ist" oder "war" als Unterschied ausgibt, je nachdem ob ich 1 mit 2 oder 2 mit 1 vergleiche.
Ich würde das Problem so angehen, daß ich beide Strings splitte und in einer QStringList ablege und durch die Elemente loope und doppelte lösche.
Wäre das der eleganteste Weg oder gibt's da einen besseren Kniff?
Meine zweite Frage hat was mit RegExp zu tun. Ich möchte die beiden Strings vorher von diversen Zeichen bereinigen, unter anderen auch Anführungszeichen.
Mein Pattern sieht wie folgt aus "[.,:;?]+". Ich würde jedoch auch gerne noch Anführungszeichen löschen lassen, wenn ich jedoch den Pattern mit einfachen Anführungszeichen umschließe ('[".,:;?]+') und das Anführungszeichen mit einfüge im Pattern, bekomme ich die Fehlermeldung "Zu viele Zeichen in der Konstante".
\\" bringt leider auch nichts.
Könnte mir da jemand einen Tip geben, wie ich das Anführungszeichen mit einfügen kann? Unter VB konnte man das mit CHR$ aber unter C++ weiß ich es leider nicht.
Gruß,
Locutus
Unterschiede zweier Strings ermitteln
Kommt drauf an,wie genau du die Differenz brauchst:
Per split beide Sätze an den Wortgrenzen aufteilen, in QSet<QString> einfügen. QSet kann dann per subtract die Differenzen (ohne Einhaltung einer Reihenfolge) ermitteln.
Konstanten sind max. char also 'a' oder '.'. (Wir sind hier nicht bei PHP/Perl...) Du suchst "\".,:?"
Per split beide Sätze an den Wortgrenzen aufteilen, in QSet<QString> einfügen. QSet kann dann per subtract die Differenzen (ohne Einhaltung einer Reihenfolge) ermitteln.
Konstanten sind max. char also 'a' oder '.'. (Wir sind hier nicht bei PHP/Perl...) Du suchst "\".,:?"
-
Locutus