eigentlich müsst ich ja für meine klausuren lernen, aber vielleicht kommt der prof ja auf die idee sowas in die klausur zu machen, deshalb hab ich mal die 3 gemacht..
sind schon einige fehlerkorrekturen drin, aber ein " ." wird als extra wort gezählt, wie in word ;-) aber das merkt ja keiner.. also hier isses:
|
Code source
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
#include <conio.h>
#include <stdio.h>
int main(void) // Begin Hauptprogramm
{
int wort=0,satz=0,wort_an=0,satz_an=0; //Zähler + Flags auf 0
char c;
FILE* eingabe;
eingabe = fopen("input.txt","r"); //Eingabedatei öffnen
while (!feof(eingabe)); //schleife is ende der datei
{
c=fgetc(eingabe); //Zeichen einlesen
if (c!=' ' && c!='.' && c!='!' && c!='?' && c!=';' && c!=',') {wort_an=1;}
//Wenn kein satzzeichen ist es wohl ein Wort, ":" und so könnte noch rein..
if (c!='.' && c!='!' && c!='?') {satz_an=1;}
//wenn es kein satzendezeichen ist fängt ein neuer satz an
if (c==' ' && wort_an==1) {wort++;wort_an=0;}
//wenn es ein wort war und ein " " folgt ist das wort zuende, zähler also 1 weiter
if ((c=='.' || c=='!' || c=='?')&& satz_an==1) {wort++;satz++;wort_an=0;satz_an=0;}
//wenn ein satzendezeichen kommt ist der satz zuende, wenn aber "..","?!" etc angegeben
//wird nimmt er es als einen satz der satz_an wird aber nur gesetzt wenn es ungleich
//einem satzendezeichen war, also kein problem..
}
fclose(eingabe); //stram schließen
printf("%d Woerter %d Saetze",wort,satz);//ausgabe
getche();//warten
return 0;
}
|