011
20.03.2004, 20:30 Uhr
Pablo
Supertux (Operator)
|
Zitat: |
Fraenky postete in ko (koordinaten) stehen wie beim Schiffe versenken Koordinaten (A1, B5, ...) und wenn die Koordinate so und so in ko steht mache dies und das..
Dann werd ich mal jetzt zu if übergehen...*arbeit*
aso: ich will nicht char benutzen; mich hat das bloß gewundert, dass switch nicht mit string aber doch mit char geht
das mit strcpy(cko, ko.c_str()); klappt, aber irgendwie überspringt er jetzt den switch...egal ich lass es jetzt...
|
Ja, switch funktioniert mit char, aber mit Zeichenketten (für den Inhalt, also char*) nicht. Wenn man
C++: |
char* x = "Hallo"; switch(x)...
|
Ich weiß ehrlich nicht, ob der Kompiler das kompiliert oder Fehlermeldung spuckt. Wenn es den Code kompiliert, dann wird switch die Adresse des Zeigers vergleichen, nicht den Inhalt.
Du hast auch switch falsch benutzt, deshalb überpringt er immer die switch.
bedeutet, überprüfe das Zeichen auf der 256. Stelle. Ein einziges Zeichen, also ein char, lässt sich als eine Zahl darstellen, z.b. die '0' ist in ASCII Code 48. Deshalb funktioniert char mit switch.
Da deine Koordinaten höchstens 2 Zeichen haben (so habe ich jetzt gemerkt), dann wird die 256. Stelle von cko fast immer nur Datenmüll haben.
Wenn du nur ein einziges Zeichen vergleichen willst, dann kannst du switch benutzen. Wenn du aber eine Zeichenkette vergleichen willst, dann musst du strcmp benutzen, wenn du char* hast, also C Strings, oder == wenn du die C++ Klasse string benutzt. -- A! Elbereth Gilthoniel! silivren penna míriel o menel aglar elenath, Gilthoniel, A! Elbereth! |