Announcement

Collapse
No announcement yet.

Stringvergleich liefert falsches Ergebnis

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Stringvergleich liefert falsches Ergebnis

    Hi,
    <p>
    ich möchte zwei Dateien vergleichen, um zu überprüfen, ob die gleich sind. Dazu hab ich die jeweils in einen String s1, s2 eingelesen.<br>
    Beim Testen hab ich festgestellt, dass die Ergebnisse des Vergleichs (s1==s2) nicht immer korrekt sind. So liefern zwei Word-Dokumente mit exakt gleicher Größe aber ganz anderem Text komischerweise das Ergebnis true.
    </p>
    <p>
    Woran liegt das? Werden nicht alle Zeichen des Strings verglichen? Wie kann ich das richtig machen?
    </p>
    Gruß und Dank!
    carsten

  • #2
    Zunächst ist zu klären in welchem Datentyp du s1 und s2 hast. da du im C++ Forum postest gehe ich davon aus, das es char ist.

    mit s1==s2 werden keine Strings verglichen, sondern die Zeiger s1 und s2.

    Man braucht für einen Stringvergleich eine extra Funktion. Schau unter strcmp und strcmpi.

    Des Weiteren wäre anzumerken, das man Binärdateien (Worddokumente) nicht in Strings lesen sollte, sondern in Speicherbereiche. Diese dann mit memcmp und memcmpi vergleichen. Auch enthalten Worddokumente mehr als nur den Text. Dazu gehören Steueranweisungen, Textformate, Absätze, Positionen usw
    Christian

    Comment

    Working...
    X