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

  1. Nuuk

    Nuuk Thread StarterMacUser Mitglied

    Mitglied seit:
    13.04.2003
    Beiträge:
    260
    Zustimmungen:
    2
    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?
     
    Nuuk, 12.05.2006
  2. Morfio

    MorfioMacUser Mitglied

    Mitglied seit:
    25.10.2002
    Beiträge:
    215
    Zustimmungen:
    1
    Du brauchst strcmp.
     
    Morfio, 12.05.2006
  3. Nuuk

    Nuuk Thread StarterMacUser Mitglied

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

    ai-freakMacUser Mitglied

    Mitglied seit:
    14.12.2002
    Beiträge:
    134
    Zustimmungen:
    0
    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ß!
     
    ai-freak, 12.05.2006
  5. below

    belowMacUser Mitglied

    Mitglied seit:
    15.03.2004
    Beiträge:
    13.289
    Zustimmungen:
    1.086
    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
     
    below, 12.05.2006
  6. Nuuk

    Nuuk Thread StarterMacUser Mitglied

    Mitglied seit:
    13.04.2003
    Beiträge:
    260
    Zustimmungen:
    2
    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 :-/
     
    Nuuk, 13.05.2006
  7. ai-freak

    ai-freakMacUser Mitglied

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

    Nuuk Thread StarterMacUser Mitglied

    Mitglied seit:
    13.04.2003
    Beiträge:
    260
    Zustimmungen:
    2
    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.. :)
     
    Nuuk, 14.05.2006
Die Seite wird geladen...
Ähnliche Themen - if(string==string)
  1. bolshi
    Antworten:
    14
    Aufrufe:
    1.234
  2. xcode42
    Antworten:
    4
    Aufrufe:
    438
    cropfaktor
    28.03.2012
  3. silentx
    Antworten:
    8
    Aufrufe:
    782
    hoppelmoppel
    11.01.2012
  4. Vorthos
    Antworten:
    12
    Aufrufe:
    1.657
  5. Brodi
    Antworten:
    2
    Aufrufe:
    923