String sortieren
-
hallo.
bin soeben mal wieder beim programmieren lernen.
jedoch hab ich ein kleines problem und hoffe das jemand helfen kann.also erstmal zur aufgabe:
es soll ein string eingelesen werden-einzelne zeichen sollen alph.sortiert werden und wieder ausgegeben werden.
das problem das ich dabei habe, ist das umlaute immer als erstes ausgegeben werden,obwohl ihr dec-wert ja nach "normalen" buchstaben und zahlen kommt.
laut debugger geschieht das,da beim einlesen nicht der richtige wert genommen wird. zum beispiel hat das ö ja den wert 148,jedoch wird -108 (also ein negativer wert)in den puffer geschrieben.somit wäre ja klar warum umlaute zuerst ausgegeben werden.
wie kann ich dies nun richtig machen-wie müsste ich mein programm anpassen?über hilfe wäre ich dankbar.
mein code lautet:
#include <stdio.h> #define text 20 void main() { int j=0,i=0,k=0,zw1=0,zw2=0,anzeige; char puffer[text],c; printf("Bitte geben Sie einen Text ein:"); for (i=0;i<=text && (c=getchar())!='\n';++i) { puffer[i]=c; } for(j=0;j<i;++j) { for(k=j;k<i;++k) { zw1=puffer[j]; zw2=puffer[k]; if(zw1>zw2) { puffer[j]=zw2; puffer[k]=zw1; } } anzeige=puffer[j]; putchar(anzeige); } }
danke schon mal
-
hallo.
ich nochmal.
nach einer pause habe ich es schon selbst gefunden.
habe anstatt unsigned char, nur char verwendet.
dadurch stimmt ja der "wertebereich" nicht.schön so ein aha erlebnis.
bis zur nächsten frage
grüsse