Programmieren - alles kontrollieren 4.937 Themen, 20.662 Beiträge

Winizges Umlaute Problem

Selecta / 4 Antworten / Flachansicht Nickles

Eingabe: Süden // Windrichtung halt.

Ausgabe: Keine (da anscheinend keine Bedinung erfüllt wurde)

Problem:

Der Compiler erkennt die Bedingung (Z == "Süden") nicht an.
Wenn ich "S\\x81den" schreibe, kommt Fehlermeldung, das irgendetwas übeschritten wurden (Dezimal größer als 3 oder so).

Wie kann jemand nun "Süden" eingeben und das Programm reagiert darauf ?

bei Antwort benachrichtigen
mr.escape Selecta „Programmiersprache: C Compiler: Borland C Compiler 5.0 Professional Beispiel:...“
Optionen

Vergleiche von zeichenketten werden nicht mit == durchgeführt sondern mit den passenden vergleichfunktionen.
Diese sind üblicherweise strcmp, strncmp (und compilerspezifische wie stricmp strcasecmp usw.).
Der z.b. hier verwendete vergleich (direction == "sueden") vergleicht nicht den inhalt von direction mit "sueden" sondern die speicheradresse des inhaltes von direction mit der adresse der konstanten zeichenkette "sueden". Diese sind offensichtlich immer unterschiedlich.
Näheres zu diesem themenkreis in jedem bel. c/c++-buch.

mr.escape

PS: Ich habe diese Frage bereits sehr ausführlich geschrieben, aber aus unerklärlichen Grund hat der Internet Explorer sie nicht abgeschickt. Da wurde ich sauer (weil das öfters passiert, ohne Grund, hab formatiert, alle Updates und Patches, hab sogar den IE mal repariert, nix ändert sich) und hab deshalb mit dem Firefox ne schnelle Antwort hingeknallt.
Tja, kann auch mit anderen browsern gelegentlich passieren, aber den ie sollte man aus billionen anderen gründen nicht verwenden und stattdessen firefox, opera oder was auch immer, hauptsache nicht auf ie basierend, nutzen.

"The man who trades freedom for security does not deserve nor will he ever receive either." - Benjamin Franklin"Wer seine Freiheit aufgibt, um Sicherheit zu erreichen, wird beides verlieren." - Georg Christoph Lichtenberg
bei Antwort benachrichtigen