Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » Kann man Strings miteinander vergleichen

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
07.01.2005, 18:53 Uhr
~Endzeitapostel
Gast


Hallo, weiß jemand wie man 2 Strings oder mehr miteinander vergleichen kann? z.B.


C++:
if(string1 == irgendeinWort)
{
    Anweisung;
}
else if (string1 == string2)
{
    Anweisung2;
}
else
{
    Anweisung3;
}



Geht das Überhaubt?
Danke schon mal im Vorraus!

Gruß
Endzeitapostel


Bearbeitung von typecast:
ich war mal so frei und hab cpp-Tags gesetzt

Dieser Post wurde am 07.01.2005 um 20:10 Uhr von typecast editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
07.01.2005, 19:30 Uhr
xXx
Devil


das mit

C++:
if(string1==string2)


sollte gehen.

PS: Codetags benutzen
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
07.01.2005, 20:09 Uhr
typecast
aka loddab
(Operator)


Wenn es sich dabei um std::strings handelt, dann ist ein Vergleich mit == moeglich.

Bei char* sollte man strcmp benutzen:


C++:
char* foo="foo";
char* bar="bar";

if (strcmp(foo, bar) == 0) {
    printf("Die Strings sind gleich\n");
}



[windalfmode]
Es muss natuerlich


C++:
if (!strcmp(foo, bar))



heissen

[/windalfmode]
--
All parts should go together without forcing. ... By all means, do not use a hammer. (IBM maintenance manual, 1925)

Dieser Post wurde am 07.01.2005 um 20:09 Uhr von typecast editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
07.01.2005, 20:10 Uhr
~Endzeitapostel
Gast


Danke fuer die schnelle Antwort aber wenn ich dieses Programm Kompiliere und ich ein Wort eingebe erscheint eine Fehlermeldung(Dieses Programm wird aufgrund eines Fehlers geschlossen...)!
Hier mal der Quellcode(ist sinnlos, dient auch nur als 'Uebung'):

C++:
#include <iostream>
#include <conio.h>

using namespace std;

char *Wort1, *Wort2;

int main()
{
    char *Name = new char[251];
    char *Wort = new char[251];
    cout<<"Bitte gib ein Wort ein: ";
    cin>>Wort1;
    cout<<"Bitte gib noch ein Wort ein: ";
    cin>>Wort2;
    if (Wort1 == Wort2)
    {
        cout<<"Das war 2x dasselbe!\n";
    }
    return 0;
    getch();
}


Jemand koennte mir bitte sagen wie ich es anders und vor allem besser machen kann!
Danke schon mal im Vorraus!
Gruß
Endzeitapostel
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
07.01.2005, 20:12 Uhr
typecast
aka loddab
(Operator)


Ok, in dem Fall greift das mit strcmp. Allerdings solltest du wenn du schon C++ schreibst einen std::string verwenden.
--
All parts should go together without forcing. ... By all means, do not use a hammer. (IBM maintenance manual, 1925)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
07.01.2005, 20:22 Uhr
(un)wissender
Niveauwart


Du greifst auf Speicher zu der dir nicht gehört. *Wort1, *Wort2 sind nicht initialisiert.

DAs sollte funzen...

C++:
#include <iostream>
#include <cstring>
#include <conio.h>


int main()
{
    char *Wort2 = new char[251];
    char *Wort1 = new char[251];
    std::cout<<"Bitte gib ein Wort ein: ";
    std::cin>> Wort1 ;
    std::cout<<"Bitte gib noch ein Wort ein: ";
    std::cin>>Wort2 ;
    if (!std::strcmp(Wort1 ,Wort2))
    {
        std::cout<<"Das war 2x dasselbe!\n";
    }

    delete [] Wort2;
    delete [] Wort1;
    return 0;
    getch();
}


--
Wer früher stirbt ist länger tot.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
07.01.2005, 20:23 Uhr
~Endzeitapostel
Gast


Danke werd´s machen !

Gruß
Endzeitapostel
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
08.01.2005, 01:43 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


hey das mit dem !strcmp hab ich auch schon bei anderen als nur bei mir gesehen...
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
08.01.2005, 02:15 Uhr
typecast
aka loddab
(Operator)


Ist mir schon klar, aber du bist immer derjenige, der dann anfaegt zu schreien
--
All parts should go together without forcing. ... By all means, do not use a hammer. (IBM maintenance manual, 1925)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: