strings mit if

Tutorials.at
Verfügbare Informationen zu "strings mit if"

  • Qualität des Beitrags: 0 Sterne
  • Beteiligte Poster: dani93 - DrPhil_Guth - wirthi - detewe89
  • Forum: Tutorials.at
  • Forenbeschreibung: Programmierforum
  • aus dem Unterforum: C / C++
  • Antworten: 5
  • Forum gestartet am: Mittwoch 19.04.2006
  • Sprache: deutsch
  • Link zum Originaltopic: strings mit if
  • Letzte Antwort: vor 16 Jahren, 3 Monaten, 25 Tagen, 7 Stunden, 28 Minuten
  • Alle Beiträge und Antworten zu "strings mit if"

    Re: strings mit if

    dani93 - 05.01.2008, 14:10

    strings mit if
    Hallo
    Ich wollte fragen, ob man mit if else auch Strings vergleichen kann.


    Code: #include <stdio.h>
    #include <conio.h>

    int main()
    {

     char* wort="wort";

     if (wort=="wort")
     {
      printf ("Richtig");
     }

        else
       {
        printf ("Falsch");
       }

     getch();

    }

    Ich weiß nicht warum, aber hier gibt er immer falsch aus.



    Re: strings mit if

    DrPhil_Guth - 05.01.2008, 14:20


    In C nicht, denn da sind Strings nichts weiter als Zeiger. Und Zeiger werden so lange nicht identisch sein, bis wirklich ein und derselbe string verglichen wird.
    Um strings zu vergleichen musst du die funktion strcmp() verwenden.

    In C++ siehts allerdings aders aus, da sind strings nämlich objekte. Der == Operator ist für diese objekte überladen, das bedeutet da kannst du sie so verwenden.



    Re: strings mit if

    wirthi - 05.01.2008, 14:23


    Weil ein String intern ein Pointer ist. Zwei verschiedene (oder auch "gleiche") Strings sind dabei auch immer verschiedene Pointer (außer sie kommen aus der gleichen Quelle und es wurden nur die Pointer kopiert).

    Was du ja eigentlich willst, ist den Inhalt der Strings zu prüfen. Das geht mit der Funktion strcmp.

    Code: #include <string.h>
    ...
    if (strcmp(string1, string2) == 0) {
     ...

    Liefert strcmp 0 zurück, sind die Strings gleich, ansonsten ungleich (bei >0 ist der erste String "größer", bei <0 der zweite; größer bedeutet, dass der erste ungleiche Buchstabe im ASCII-Code einen größeren Wert hat).



    Re: strings mit if

    dani93 - 05.01.2008, 14:25


    OK Danke
    Jetzt funktionierts.
    Neue Frage:
    Warum gehts, wenn ich

    Code: char* wort1;
    char* wort2;
    ...

    schreib, aber nicht bei

    Code: char* wort1, wort2, ...



    Re: strings mit if

    detewe89 - 05.01.2008, 15:04


    Damit würdest Du wort2 nicht als Pointer definieren. Wenn Du ohne Semikolon schreibst, dann so:

    Code: char *wort1, *wort2;



    Mit folgendem Code, können Sie den Beitrag ganz bequem auf ihrer Homepage verlinken



    Weitere Beiträge aus dem Forum Tutorials.at

    Error - gepostet von xxx am Freitag 01.12.2006
    Zeichen einzeln einlesen - gepostet von bubblelol am Donnerstag 20.09.2007
    Compiller zeigt alles an - gepostet von Wüstling am Donnerstag 10.05.2007
    Suche: [color=red]ADA 2005 Compiler[/colo, [co und[color=red - gepostet von anarchist am Sonntag 20.05.2007
    Mini-Pascal-Programm - gepostet von TSK am Donnerstag 31.05.2007
    Brauche Hilfe - gepostet von Belphegor am Montag 05.03.2007
    goto - gepostet von Moritz am Sonntag 23.12.2007



    Ähnliche Beiträge wie "strings mit if"

    [03.08.05] Viframa - Cristalle (Solar Strings & Lead Rem - DJ Headhunter (Mittwoch 03.08.2005)
    Strings - abbafreak (Montag 03.09.2007)
    Strings - Bloody-Mad-Looney (Freitag 18.08.2006)
    Spieltag: 27.02.11 Bredstedt ab 11:00Uhr - Mansen (Mittwoch 23.02.2011)
    buying bow strings - dj d4nny 05 (Montag 20.02.2006)
    Strings - flossnix (Montag 15.11.2004)
    Verkaufe 1K bow strings! - mafiaboss65 (Freitag 26.01.2007)
    The Sound Of Strings [ab 16] - Omega MM (Donnerstag 30.08.2007)
    Strings Singers - angela (Freitag 20.07.2007)
    DerWuppertaler ist da!!! - DerWuppertaler (Mittwoch 03.10.2012)