AnfängerFrage
-
Das Problem war die Verwendung von char* Zeichenketten...
Das funktioniert nicht ohne weiteres mit
cin
und du kannst die nicht einfach so vergleichen
zeichenkette1 == zeichenkette2
dazu brauchst du die Funktion strcmp ... aber benutze lieber die
C++ strings:
#include<string>
-
vielen dank für die schnelle antwort... aber warum soll ich keine char* verwenden?
/edit hab dein 2. post nicht gesehn

-
Kubilay20 schrieb:
vielen dank für die schnelle antwort... aber warum soll ich keine char* verwenden?
weil string angenehmer ist und damit vieles ganz von allein geht, was mit char* doch recht umständlich ist.
-
Weil die viel aufwändiger zu verwalten sind.
Da du ja C++ programmieren willst nutze die Möglichkeit und nutze C++ strings
Natürlich kannst du auch den ALTEN C char verwenden....Für dein Einstieg würde ich mich an deiner Stelle lieber das lernen von char* aufschieben ....
-
Bei deinem ursprünglichen Code vergleichst du nicht die beiden Zeichenketten miteinander, sondern die beiden Zeiger, die immer unterschiedlich sind. Du müsstest also, wenn du char* benutzt, überprüfen, ob *eingabetext = J und *(eingabetext + 1) = A und *(eingabetext + 2) = \0 ist. Es gibt eine Funktion namens strcmp (string compare), die dir diese Arbeit abnimmt. Siehe http://www.cppreference.com/wiki/c/string/strcmp
-
benutze einfach "string" statt "char*", dann wird es funktionieren.
Damit der Datentyp "string" aber ueberhaupt gefunden wird, musst du oben noch "#include<string>" reinschreiben, zu den anderen "#include"s.
Warum es dann funktionieren wird, bzw. warum es im Moment nicht funktioniert:
Es hat was mit den Adressen im Arbeitsspeicher zu tun, an denen die einzelnen Zeichenketten (szString und szString1) gespeichert sind. Mit deinem vergleich "szString == szString1" pruefst du eigentlich nur, ob sie an der gleichen Stelle im Arbeitsspeicher stehen. In Wirklichkeit wolltest du aber den Inhalt auf Gleichheit ueberpruefen, nehme ich an. Bei "string" wird das nicht passieren, das ist ein etwas komplexerer Datentyp, der das alles richtig macht
Ausserdem hast du bei der Initialisierung von "szString" noch etwas falsch gemacht, aber benutze einfach erstmal "string", dann ist das Problem geloest.
-
asdagasdasd schrieb:
Weil die viel aufwändiger zu verwalten sind.
Da du ja C++ programmieren willst nutze die Möglichkeit und nutze C++ strings
Natürlich kannst du auch den ALTEN C char verwenden....Für dein Einstieg würde ich mich an deiner Stelle lieber das lernen von char* aufschieben ....
Alles klar Danke

-
Ach und ich würde mir lieber bessere Namen für deine Variablen ausdenken...
Was um Himmels willen soll denn ein "szString" sein?
Bei "eingabetext" weiss man immer gleich um was es geht!
-
Kubilay hast du ICQ?
-
nein tut mir leid ich habe nur msn
-
Ja dann gib mal bitte.
-
Was habt da denn zu bereden?

ICH BIN SO NEUGIERIG! ERZÄÄÄÄÄÄÄÄÄÄÄÄHL!

-
wenn ich das wüsste

ich geh pennen hab morgen schule...
achja... sjdhajkshdaskj warum registrierst du dich nicht einfach anstatt so ne namen zu verwenden
-
Schreib mir dann morgen mal deine E-Mail Addy

-
Hihi ... keine Ahnung ... möglicherweise war ich zu doof auf "Login" zu drücken

Du hast wohl einen Fan!!
-
Das wirds wohl sein


-
Erhoffst du dir C++-Unterricht von Kubi...? ^^
bb
-
Unterricht von ihm ?

Müsste wohl eher anders sein
-
FreakY<3Cpp schrieb:
Unterricht von ihm ?

Müsste wohl eher anders sein
Dann erklärt er dir, was Ironie ist

-
benutz auf keinen fall string. dann wirst du es später einmal sehr sehr schwer haben das konzept der zeiger zu begreifen. benutze lieber den grundlegenden datentyp char*.