Umlaute: Erhalte negativen Wert [done]
-
Hallo,
ein Programm von mir schnappt sich den ASCII Wert eines char und arbeitet dann mit diesem.
Jetzt bin ich auf folgendes Problem gestoßen:// Beispiel zur Veranschaulichung AnsiString str1 = "ABCÄÖÜ"; // Benutzereingabe char c1 = str1[2], c2 = str1[4]; int i1 = c1, i2 = c2; char c3 = i1, c4 = i2;Der Benutzer gibt den String str1 ein.
Sowie ein Umlaut darin vorkommt und ich den integer davon ahben will bekomme ich einen negativen Wert. Mit diesem kann ich aber nicht rechnen. Sollte ja eigentlich positiv sein!
Wandele ich den negativen integer wieder in ein char zurück erhalte ich allerdings den gewünschten Umlaut. Was ist denn hier los?
Kann mir das jemand erklären?
-
Und nocheinmal die Frage
Warum arbeitest du mit gemischten Zeichenketten-Typen. Nimm String (AnsiString) und gut.
Des Weiteren schau in der Hilfe unter
sigend
unsignednach. Das könnte eine Hilfe sein
-
Hallo
unsigned char cx = str1[4]; int ix = cx;bis bald
akari
-
Horschdware schrieb:
Sollte ja eigentlich positiv sein!
wieso sollte der positiv sein? der wertebereich von char ist -128 <= X <= 127, es gibt aber 256 ASCII-Zeichen (0 <= X <= 255).
-
ah, ok
alles klar.
bins von meinen delphi chars gewohnt dass die positiv sind.merci
problem gelöst