Array mit Char Index
-
Liebe C-Gurus,
ich hab ein - so denke ich - ziemlich simples problem, aber ich denk glaub ich gerade zu kompliziert.
Folgende Aufgabenstellung:
Eine Zeichenkette soll eingelesen werden, und von jedem Buchstaben soll das Vorkommen gespeichert werden. Am Ende soll der Buchstabe ausgegeben werden, der am öftesten vorgekommen ist.folgendes hab ich schon:
int arrayLen = 127; char array[arrayLen]; int i, k; /* init array with '0' */ for(i = 0; i < arrayLen-1; i++){ array[i] = '0'; } /* FOR */ char string[] = "Hallo ich bins der Peter und das ist gut so!"; char c, d; i = sizeof(string); for (k = 0; k <= i; k++){ c = string[k]; printf("Buchstabe: %c\n", c); /* dann müsste ja d, der wert von dem Buchstaben dann sein... also das Vorkommen. In dem fall jetzt immer 0, weil ich den wert ja noch nirgends erhöht habe, aber ich weiß jetzt eben nicht wie ich darauf zugreife... ich bekomme aber nur die fehlermeldung: array index vom Type char Ich müsste ja mit array['c'] darauf zugreifen aber, dann ist es eben nicht die Variable c. Wie sag ich ihm also, dass er den Ordinalwert nehmen soll?!?!*/ d = array[c]; } /* FOR */
Lg. Peter
-
array[(int)c];
-
j schrieb:
array[(int)c];
das schaltet doch nur die warnung aus. der compiler warnt zu recht, denn chars können viel schneller überlaufen als ints und werden dann negativ. also besser aus 'c' ein int machen.
-
~fricky schrieb:
j schrieb:
array[(int)c];
das schaltet doch nur die warnung aus. der compiler warnt zu recht, denn chars können viel schneller überlaufen als ints und werden dann negativ. also besser aus 'c' ein int machen.
Ein size_t wäre noch besser.