String Vergleich



  • Hallo Zusammen,

    1- Gibt es eine Beste methode um die Texte zu vergleichen?

    2- Außerdem wie soll man seine Textstücke speichern? Char*, String, Char Array usw. Welche ist für welche aufgabe besser geeignet?

    Könnt ihr bitte helfen.

    Es wäre auch schönn falls ihr eine Artikel zeigen könnt.

    Danke im Voraus



  • Ich sollte es in C++ forum schrieben. Kann eine ihn schieben. 🙂



  • Wenn ich mich recht entsinne gibt's in C++ Strings.
    In C gibt's dafür "nur" Char* bzw. Char-Arrays.

    Womöglich bist Du hier ja doch richtig...

    Im Übrigen würde es sich anbieten, ein entsprechendes C-Tutorial zu absolvieren, um die "Grundfunktionen" der Sprache kennen und anwenden zu lernen.

    http://cplusplus.com/reference/clibrary/cstring/

    Hier findest Du einen tollen Überblick über den String-Header der C-Library.

    Ansonsten ist die Wahl des richtigen Datentyps stark abhängig vom Anwendungsgebiet bzw. der Zielsetzung. Generell ist ein "Text" in einem Char-Array gut aufgehoben. Da wiederum kommt es darauf an, ob sich der Text verändert bzw. variabel sein soll, die Länge bekannt ist, etc...

    Textvergleiche mit strcmp ->
    Gleichen sich die beiden "Texte", die man strcmp übergibt, bekommt man 0 zurückgeliefert. Ist der "Wert" von text1 > text2, bekommt man 1, andernfalls -1 als Rückgabe.

    char text1[] = "Angel";
    char text2[] = "Zange";
    int erg=0;
    erg = strcmp (text1, text2);
    if (erg > 0) printf ("%s > %s\n", text1, text2);
    else if (erg < 0) printf ("%s < %s\n", text1, text2);
    else printf ("%s == %s\n", text1, text2);
    


  • Gleichen sich die beiden "Texte", die man strcmp übergibt, bekommt man 0 zurückgeliefert. Ist der "Wert" von text1 > text2, bekommt man 1, andernfalls -1 als Rückgabe.

    Kleine Korrektur:
    strcmp liefert 0 zurück wenn beide Texte gleich sind, eine negative Zahl (nicht unbedingt -1) wenn text1 kleiner ist und eine positive Zahl (nicht unbedingt 1) wenn text1 größer ist.



  • linux_c89 schrieb:

    Gleichen sich die beiden "Texte", die man strcmp übergibt, bekommt man 0 zurückgeliefert. Ist der "Wert" von text1 > text2, bekommt man 1, andernfalls -1 als Rückgabe.

    Kleine Korrektur:
    strcmp liefert 0 zurück wenn beide Texte gleich sind, eine negative Zahl (nicht unbedingt -1) wenn text1 kleiner ist und eine positive Zahl (nicht unbedingt 1) wenn text1 größer ist.

    1000 Dank 🙂

    Habe ich ehrlich gesagt nie wirklich beachtet... zum Sortieren reichte mir ein >0 oder <0 und zum Abgleichen ein ! oder ohne 🙂



  • Dieser Thread wurde von Moderator/in SeppJ aus dem Forum C (C89 und C99) in das Forum C++ (auch C++0x) verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • std::string Foo("Hallo"), Bar("Hallo!");
    std::cout << "Foo und Bar sind " << (Foo == Bar ? "" : "nicht ") << "gleich.\n";
    

Log in to reply