![]() |
![]() |
|
![]() |
![]() |
|
Programmierung Rat & Tat für Programmierer |
|
Themen-Optionen | Ansicht |
![]() |
#7 |
Inventar
![]() Registriert seit: 24.01.2001
Beiträge: 5.631
|
![]() Außerdem muß folgende Zeile geändert werden:
Falsch: tabelle [string[i]] ++; Richtig: tabelle [ (unsigned char)string[i] ] ++; Es ist ein CASTen (ein Umtypisieren) notwendig, da für Zeichencodes > 127 - z.B. Umlaut A - ein negativer Index für das Array tabelle in der Funktion (besser Prozedur genannt da sort keinen Rückgabewert hat --> eben "void" sort (char string[])) herauskommt ! Der Wertebereich von char geht von -128 bis 127. Für tabelle[i], also das i (den Index) braucht man aber die Werte 1-255. Null zählt ja nicht, weil es (das Zeichen NUL (=binäre Null)) den Abschluß eines ASCII C Strings bildet. Deswegen braucht man das Element tabelle[0] nicht. Oder: tabelle [ ((unsigned char)string[i])-1 ] ++; schreiben. Dann stimmen die sogenannten beiden fehlerhaften Zeilen wieder. |
![]() |
![]() |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
|
|