Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » char string 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 < [ 2 ]
000
25.12.2003, 17:55 Uhr
~rammellaus
Gast


ich will einen char string mit einer konstanten, also einem feststehenden wort vergleichen, wie mach ich das?

if(name=='bla') und if(if=="bla") funzen nicht so richtig, also mit ' gehts gar net und mit " läuft zwar das programm aber er setzt die if bedingung auf unwahr obwohl sie wahr ist.....

dann hab ich was über strcmp aussem cstring gelesen (ich benutze aber c++ aber er gibt, egal ob beide strings gleich oder net nur eine riesige zahl aus!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
25.12.2003, 18:06 Uhr
kronos
Quotenfisch
(Operator)


in C++ gibt es dafür die string klasse.
bei strcmp ist zu beachten, dass beide strings 0-terminiert sind.
wenn sie gleich sind, wird 0 zurückgegeben.
bsp.:

C++:
char *string;
scanf("%s", &string);
if (!strcmp("hallo", string))
puts("du hast hallo eingegeben. gleichfalls hallo.");


--
main($)??<-$<='?'>>2?main($-!!putchar(
(("$;99M?GD??(??/x0d??/a:???;a"+'?'/4)
??($??)+'?'/3-2-1+$%2)??''?')):'?';??>

Dieser Post wurde am 25.12.2003 um 18:07 Uhr von kronos editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
25.12.2003, 18:08 Uhr
Pablo
Supertux
(Operator)


wenn du char* mit == vergleichst, dann vergleichst du den Inhalt nicht, sondern wo sie zeigen. D.h. if (name==lastname) bedeutet, wenn name und lastname auf die selbe Stelle zeigen.

Um den Inhlat zu vergleichen, stellt string.h die Funktion strcmp zur Verfügung. strcmp vergleicht beide char* und liefert 0 wenn beide gleichen Inhalt haben, und einen Wert ungleich 0 wenn beide String nicht gleich sind.


C++:
if(strcmp(name, lastname)==0) {
  printf("Der Nachname und der Name stimmen überein.\n");
}



Die char*s müssen 0-Terminierende char*s sein.

2. if(name=='bla') wird nie funktionieren, denn du vergelichst einen Pointer mit einem char. Außerdem muss nur ein Zeichen innerhalb ' '. 'bla' ist nicht erlaubt, weil es kein Zeichen bla gibt, bla ist eine Zeichenkette.
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
25.12.2003, 18:31 Uhr
~rammellaus
Gast


k, danke euch! und hab noch ne frage, wenn ich zum einlesen von txt dateien das benutze:
ifstream in("c\rammli\\bla.txt");

dann sagt er mir nach mehrfacher nutzung das in bereits deklariert ist..... wieso das? in ist doch keine variable,oder?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
25.12.2003, 18:41 Uhr
~rammellaus
Gast


ok, hab grad herausgefunden ist ne variable..... aber wie lese ich mit der gleichen variable nochmal was ein ohne sie zu deklarieren? wenn ich nur das ifstream weglasse gibts compilerfehler...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
25.12.2003, 19:00 Uhr
Pablo
Supertux
(Operator)


Ich verstehe deine Frage nicht, Wenn du die Variable nicht deklarierst, dann gibt es nicht, besser gesagt, sie ist ungültig. Vielleicht solltes du einen anderen Namen nehmen, nicht in, sondern keine Ahnung, myin oder so. ich bin kein C++er, aber ich glaueb, es gibt schon Objekte mit dem namen in.
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!

Dieser Post wurde am 25.12.2003 um 19:01 Uhr von Pablo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
25.12.2003, 19:20 Uhr
~fabi
Gast


schreib einfach

C++:
string name;
cin>>name;

if(name == "bla)
{
      ........
}


mfg

FAbi


Bearbeitung von Pablo:

Wieso gibt es Leute, die sich weigern CPP Tags zu verwenden? Das ist nicht schwer, kostet nur 3 Sekunden von der kostbaren Zeit. BITTE CPP TAGS BENUTZEN


Dieser Post wurde am 25.12.2003 um 19:22 Uhr von Pablo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
25.12.2003, 19:46 Uhr
~rammellaus
Gast


und noch ne frage ^^

muss ich beim einlesen bzw beschreiben einer txt den direkten pfad angeben, oder kann ich auch einfach sagen "im selben ordner wie die exe" ?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
25.12.2003, 19:56 Uhr
Pablo
Supertux
(Operator)


Wenn du den Pfad nicht eingibst, dann wird deb Pfad angenommen, von dem Pfad aus dem du die Datei ausführst, muss nicht unbedigt die Pfdad der EXE Datei sein.
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
25.12.2003, 20:11 Uhr
~rammellaus
Gast


schreib ich dann ifstream in (""); ? dann speichert er die daten aber nirgendwo hin....
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ C / C++ (ANSI-Standard) ]  


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: