if(string==string) in C???

Dieses Thema im Forum "Mac OS X Entwickler, Programmierer" wurde erstellt von Nuuk, 12.05.2006.

  1. Nuuk

    Nuuk Thread Starter MacUser Mitglied

    Beiträge:
    260
    Zustimmungen:
    2
    MacUser seit:
    13.04.2003
    Ich arbeite gerade an nem programm für studium in der ich zwei strings mittels bsp:

    If("hallo"=="hallo")

    vergleiche.
    ich hab das vorhin in der main gemacht, da funktionierte das ganze wunderbar.
    dann hab ich das ganze auf verschiedene module aufgteilt. (schön mit header dateien usw.) funktioniert auch alles wunderbar, nur dieses IF funktioniert nicht mehr. wenn ich das if mit int füttere geht es.
    nun meine Frage: Ist vielleicht an dieser Vorgehensweise zu schauen ob zwei strings gleich sind was falsch, und das geht nur mit stringcompare aus der string.h??
    wer kann mir mal schnell helfen?
     
  2. Morfio

    Morfio MacUser Mitglied

    Beiträge:
    215
    Zustimmungen:
    1
    MacUser seit:
    25.10.2002
    Du brauchst strcmp.
     
  3. Nuuk

    Nuuk Thread Starter MacUser Mitglied

    Beiträge:
    260
    Zustimmungen:
    2
    MacUser seit:
    13.04.2003
    also string==string ist böse?!?
     
  4. ai-freak

    ai-freak MacUser Mitglied

    Beiträge:
    134
    Zustimmungen:
    0
    MacUser seit:
    14.12.2002
    Strings in C sind in Zeiger auf Character-Arrays, also vom
    Typ "char*"

    Der == Operator vergleicht nur die Addressen dieser Zeiger, die müssen
    für Strings mit gleichem Inhalt aber keinesfalls gleich sein.

    Das oben erwähnte strcmp vergleicht zwei Character-Arrays zeichenweise
    und liefert 0, wenn es kein Unterschied gibt,

    du musst also sowas wie

    if (strcmp(str1, str2) == 0) {
    ...
    }

    machen.

    Gruß!
     
  5. below

    below MacUser Mitglied

    Beiträge:
    13.882
    Zustimmungen:
    1.086
    MacUser seit:
    15.03.2004
    Böse nicht. Aber wie ai-freak gesagt hast, vergleichst Du damit die Adressen der beiden Strings, nicht die Inhalte. Manchmal will man auch die Adressen vergleichen, aber in diesem Fall sicher nicht.

    Alex
     
  6. Nuuk

    Nuuk Thread Starter MacUser Mitglied

    Beiträge:
    260
    Zustimmungen:
    2
    MacUser seit:
    13.04.2003
    vielen vielen dank für die gute erklärung ai-freak.
    wenn man das dann so liest, denkt man sich wieder: eigentlich hätt ich das doch selbst wissen müssen :-/
     
  7. ai-freak

    ai-freak MacUser Mitglied

    Beiträge:
    134
    Zustimmungen:
    0
    MacUser seit:
    14.12.2002
    Ach weisst du, auf diese Gemeinheit mit dem Stringvergleichen ist wohl jeder C-Programmierer schon mal reingefallen ;-)
     
  8. Nuuk

    Nuuk Thread Starter MacUser Mitglied

    Beiträge:
    260
    Zustimmungen:
    2
    MacUser seit:
    13.04.2003
    das beruhigt immerhin ein bisschen.
    am anfang macht man ja eh die unmöglichsten fehler. wenn man sich da so zurückerinnert, wie man letztes semester mit den printfs gekämpft hat. :D und jetzt läuft das wie von selbst. dann wird das schon noch.. :)
     
Die Seite wird geladen...

Diese Seite empfehlen