Willkommen |
|
myGully |
|
Links |
|
Forum |
|
|
|
 |
08.10.10, 17:25
|
#1
|
Echter Freak
Registriert seit: Mar 2010
Ort: /home/spartan-b292
Beiträge: 2.856
Bedankt: 1.701
|
C Zeichenzählen
Hallo,
ich muss für die FH ein C Programm schreiben und brauche dafür eine Funktion die folgende Aufgabe erfüllt:
Ein Text soll zeichenweise eingelesen und nicht in einem Feld gespeichert werden. Beim Einlesen werden die
Zeichen gezählt. Die entsprechenden Werte werden im Feld haeufigkeit abgelegt. Die Funktion soll die Gesamtzahl aller eingelesenen Zeichen zurückgeben. Das Einlesen soll mit dem Zeichen 26 ^Z beendet
werden.
Meine erste Idee war folgende:
Code:
int einlesen (int anzahl)
{
char eingabe;
char haeufigkeit[128];
printf("Bitte geben sie einen Text ein: \n");
eingabe = getchar();
anzahl++;
haeufigkeit[eingabe]++;
return (anzahl);
}
Meine Frage ist jetzt konkret, macht mein Code das was er soll, daenn ansonsten kann ich die anderen Funktionen schlecht schreiben, wenn er nicht genau das macht, was muss ich verändern? Wäre nett wenn ihr mir ein wenig helfen könntet!
Danke.
__________________
"They who can give up essential liberty to obtain a little temporary safety, deserve neither liberty nor safety"
|
|
|
08.10.10, 18:29
|
#2
|
Mitglied
Registriert seit: Aug 2009
Ort: void* (*wtf[])(void **);
Beiträge: 453
Bedankt: 137
|
prinzipell richtig, nur
a) es gibt 256 acii-zeichen
b) da fehlt eine schleife. z.b. while ...
__________________
entropie erfordert keine wartung
|
|
|
08.10.10, 18:49
|
#3
|
Echter Freak
Registriert seit: Mar 2010
Ort: /home/spartan-b292
Beiträge: 2.856
Bedankt: 1.701
|
Danke, das mit den 128 Zeichen ist okay so, weil mehr nicht gezählt werden sollen. Und die while schleife brauche ich um? Mit einem bestimmten Zeichen die Eingabe zu beenden?
__________________
"They who can give up essential liberty to obtain a little temporary safety, deserve neither liberty nor safety"
|
|
|
08.10.10, 18:53
|
#4
|
Mitglied
Registriert seit: Aug 2009
Ort: void* (*wtf[])(void **);
Beiträge: 453
Bedankt: 137
|
Zitat:
Danke, das mit den 128 Zeichen ist okay so
|
dann aber nicht wundern, wenn das program abstürzt, wenn du z.b. ein 'ö' eingibst.
Zitat:
Und die while schleife brauche ich um? Mit einem bestimmten Zeichen die Eingabe zu beenden?
|
bingo!
__________________
entropie erfordert keine wartung
|
|
|
08.10.10, 19:03
|
#5
|
Oldie
Registriert seit: May 2009
Beiträge: 43
Bedankt: 80
|
Mir stellt sich bei deinem Quellcode gerade die Frage ob du ein C oder ein C++ Programm schreiben musst...
|
|
|
08.10.10, 19:46
|
#6
|
Banned
Registriert seit: Sep 2009
Ort: /root/
Beiträge: 824
Bedankt: 640
|
musst du da nach jedem Zeichen nen enter hinterherschieben?
|
|
|
08.10.10, 22:08
|
#7
|
Echter Freak
Registriert seit: Mar 2010
Ort: /home/spartan-b292
Beiträge: 2.856
Bedankt: 1.701
|
Zitat:
musst du da nach jedem Zeichen nen enter hinterherschieben?
|
Dazu gibt es keine genaue Angabe in der Aufgabendarstellung aber das Beispielbild der Ausgabe, welches in der Aufgabe zu sehen ist, sieht eher so aus als würden die Zeichen am Stück ohne Enter eingegeben.
__________________
"They who can give up essential liberty to obtain a little temporary safety, deserve neither liberty nor safety"
|
|
|
09.10.10, 01:29
|
#8
|
Banned
Registriert seit: Sep 2009
Ort: /root/
Beiträge: 824
Bedankt: 640
|
also falls es wirklich am stück geschehen soll müsstest du Funktionen wie getch() [windows: conio.h unix: curses.h] verwenden.
|
|
|
09.10.10, 07:39
|
#9
|
bla
Registriert seit: Mar 2010
Beiträge: 312
Bedankt: 302
|
Zitat:
Zitat von urga
dann aber nicht wundern, wenn das program abstürzt, wenn du z.b. ein 'ö' eingibst.
|
du musst beim prog immer vom worst case ausgehen, deswegen unbedingt eine abfrage einbauen, ob es innerhalb des arrays liegt. das gilt immer und allg.
|
|
|
Forumregeln
|
Du kannst keine neue Themen eröffnen
Du kannst keine Antworten verfassen
Du kannst keine Anhänge posten
Du kannst nicht deine Beiträge editieren
HTML-Code ist Aus.
|
|
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:51 Uhr.
().
|