sonderzeichen zählen aus textdatei

zedzeux

Grünschnabel
Hi Leute,
ich habe ein Problem.
Unzwar hab ich als Hausaufgabe auf,
1.)
mit c ein programm zu schreiben,
dass aus Textdateien alle Sonderzeichen bzw Interpunktionszeichen "Punkt, Komma, Semikolon, Ausrufezeichen und Fragezeichen" zählt.

2.)
soll ich das Programm so erweitern, dass die Kommandozeile ausgewertet wird
-> bei Angabe von "-i" soll die Zahl der Interpunktionszeichen
-> bei Angabe von "-n" die Anzahl der Zahlen
gezählt werden.

Bei allen anderen Argumenten soll eine Fehlermeldung aufkommen.

3.
Ich soll wie bei 1.) aus einer Textdatei, aber diesmal Zahlen( nicht Ziffern) Zählen.


Jetzt denken bestimmt viele: " Warum postet der Typ so viele Fragen"
Wir hatten letzte Woche gelernt wie man arrays erstellt und nun kommt so eine Hammeraufgabe!
Und bovor wir c angefangen hatten, gabs ne HTML....lol.
Daher bitte ich euch um Verständnis.
Bin ein totaler Anfänger in c!

Leider find ich im netzt nur sachen zu c++.
Aber die bringen mich nicht vorran.

Für jede Hilfe bin ich sehr dankbar!

Bis dann
zedzeux:rolleyes:
 
Zu Frage 2:

Code:
#include <stdio.h>

int main (int argc, char *argv[])
{
	int i;
	int InterpunktionszeichenZaehlen = 0;
	int ZahlenZaehlen = 0;

	for (i = 0; i < argc; i++)
	{
		if (strcmp(argv[i], "-i") == 0)
		{
			InterpunktionszeichenZaehlen = 1;
		}
		else if (strcmp(argv[i], "-n") == 0)
		{
			ZahlenZaehlen = 1;
		}
	}

	if ((InterpunktionszeichenZaehlen | ZahlenZaehlen) == 0)
	{
		printf("Kein oder ein ungültiger Parameter übergeben!");
	}

	// So... jetzt ggf. die Interpunktionszeichen zählen
	if (InterpunktionszeichenZaehlen == 1)
	{
		int Anzahl = 0;
		FILE *fp;
		char zeichen;

		fp = fopen("c:\\datei.txt", "r");

		while ((zeichen = getc(fp)) != EOF)
		{
			if ((zeichen == '.') || (zeichen == ',') || (zeichen == ';') || (zeichen == '!') || (zeichen == '?'))
			{
				Anzahl++;
			}
		}

		fclose(fp);
		printf("Anzahl der Interpunktionszeichen: %d", Anzahl);
	}

	// dann müsste man noch die Zahlen zählen, aber das solltest jetzt wirklich selber können...


	getchar();
	return 0;
}

Irgendwie so... Eigentlich solltest du das aber schon wissen oder? Weil ansonsten würdest du wohl kaum eine solche Aufgabe kriegen?
Ich war mal ganz streng und hab anstatt von "bool" wirklich "int" verwendet, falls du einen so altmodischen Compiler hast, der wirklich nur reines C akzeptiert ;)
 
Zuletzt bearbeitet:
Danke erstmal für die schnelle Antwort.
Ich werde es gleich morgen am unix-rechner ausprobieren.
Hab zuhause nur ein windows und kann es schwer nachvollziehen.
 
Zurück