Texteingabe und dann die einzelnen Buchstaben auszählen lassen
-
Servus miteinander,
ich habe mal wieder ein Problem. Ich soll ein Programm schreiben, indem man
beliebig viel Text eintippen kann und wenn "ENDE" eingegeben wird sollen
die im Text enthaltenen Buchstaben gezählt und ausgegeben werden.Bsp: Hallo = 1xH, 1xa, 2xl, 1xo
Ich habe bereits folgendes Gerüst vorgegeben bekommen:
char *ReadLine() { } void CountCharacters( char *string ) { } int _tmain(int argc, _TCHAR* argv[]) { while( true ) { char *line = ReadLine(); if( strcmp( line, "ENDE" ) != 0 ) CountCharacters( line ); else break; } // ausgeben _getch(); return 0; }
Ich glaube ich stell mich einfach wieder mal wie ein Hund zum eierlegen an. Vielen Dank im voraus für eure Bemühungen.
Gruß GiJoe
-
Wie man Zeichen zählt wurde hier schon mehrfach beschrieben. Jedes Zeichen einzeln auslesen und dann je nach Buchstabe einen Counter erhöhen.
-
Ja, vielen Dank für deinen Hinweis. Wenn ich das vorher gewusst hätte, hätte ich euch niemals mit diesem mickrigen Problem belästigt.
-
Der wird dir dann immer 4 anzeigen (oder garnichts), weil du nur "ENDE" in line hast.
-
Hallo miteinander,
fuer alle die nicht dran geglaubt haben hier mal der Code.
#include "stdafx.h" char *ReadLine() { static char saveArray[101] = {0}; char *temp = saveArray; char input = 0; fgets(temp, 100, stdin); return temp; } int * CountCharacters( char *string ) { static int changeRow[256] = {0}; while (*string > 0) { changeRow[(int)*string]++; string++; } return changeRow; } int _tmain(int argc, _TCHAR* argv[]) { int *print = 0; while( true ) { char *line = ReadLine(); if( strcmp (line, "ENDE\n" ) != 0 ) print = CountCharacters( line ); else break; } for (int i=0; i<=256; i++) { if (print[i] > 0) printf("\n%c\t(%d), ist \t%d mal vorhanden", (char) i, i, print[i]); } _getch(); return 0; }
Gruß GiJoe