Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Hilfe bei C

Empfohlene Antworten

Veröffentlicht

Hey,

soll von der Schule aus diese Aufgabe programmieren:

Aufgabenstellung:

Schreiben Sie ein Programm, das den Inhalt einer Text-Datei analysiert. Dazu sei die Datei

faust.txt gegeben, die den folgenden Inhalt (aus Goethes Faust) hat:

> more faust.txt

Da steh ich nun,

ich armer Tor!

Und bin so klug

als wie zuvor;

>

Das Programm faust.c soll nun die Häufigkeit eines bestimmten Buchstabens, den der Benutzer

wählen kann, in dieser Datei ermitteln. Ein Programmlauf sollte wie folgt aussehen:

> ./faust

Ich kann Goethe-Texte fuer Sie auswerten. Welchen Buchstaben

moechten Sie zaehlen? n

Die erste Zeile lautet: "Da steh ich nun,"

Es gibt den Buchstaben n 2 Mal in dieser Zeile.

Die zweite Zeile lautet: "ich armer Tor! "

Es gibt den Buchstaben n 0 Mal in dieser Zeile.

Die dritte Zeile lautet: "Und bin so klug "

Es gibt den Buchstaben n 2 Mal in dieser Zeile.

Die vierte Zeile lautet: "als wie zuvor; "

Es gibt den Buchstaben n 0 Mal in dieser Zeile.

>

Um die Sache zu vereinfachen, können Sie davon ausgehen, dass jede Zeile in der Datei faust.txt

aus exakt 16 Zeichen besteht. (Das ist normalerweise natürlich nicht der Fall. Die Datei wurde so

modifiziert, dass sie diese Bedingung erfüllt. Wir werden später lernen, wie man mit beliebig

langen Zeilen umgeht.)

Ich hab eigl schon soweit alles gemacht, dachte ich zumindest.

Wenn ich das Programm dann ausführen, dann kommt eine Fehlermeldung und das Fenster wird geschlossen:(

#include <stdio.h>

#include <stdlib.h>

int main(int argc, char *argv[])

{

FILE *fp;

fp = fopen("C:\\Prg\\faust.txt","r");

char v;

char c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16;

int count = 0;

printf("Ich kann Goethe-Texte fuer Sie auswerten.\n Welchen Buchstaben moechten Sie zaehlen?");

scanf("%c",v);

fscanf(fp,"%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c",&c1,&c2,&c3,&c4,&c5,&c6,&c7,&c8,&c9,&c10,&c11,&c12,&c13,&c14,&c15,&c16);

if (v == c1)

{

count +=1;

}

if (v == c2)

{

count +=1;

}

if (v == c3)

{

count +=1;

}

if (v == c4)

{

count +=1;

}

if (v == c5)

{

count +=1;

}

if (v == c6)

{

count +=1;

}

if (v == c7)

{

count +=1;

}

if (v == c8)

{

count +=1;

}

if (v == c9);

{

count +=1;

}

if (v == c10)

{

count +=1;

}

if (v == c11)

{

count +=1;

}

if (v == c12)

{

count +=1;

}

if (v == c13)

{

count +=1;

}

if (v == c14)

{

count +=1;

}

if (v == c15)

{

count +=1;

}

if (v == c16)

{

count +=1;

}

printf("Die erste Zeile lautet: Da steh ich nun,\nEs gibt den Buchstaben %c%i Mal in dieser Zeile.",v,count);

system("PAUSE");

return 0;

Es ist zwar tierisch lang, aber ich kann leider noch nicht mit schleifen umgehen.:confused:

Vielleicht kann mir jemand auch noch einen tipp geben wie man das verkürzen kann:rolleyes:

Ich weiß echt nicht was ich da falsch gemacht habe...

Wäre super nett wenn mir da jemand helfen könnte:)

Es ist zwar tierisch lang, aber ich kann leider noch nicht mit schleifen umgehen.:confused:

Dann solltest du es lernen.

C++ Tutorial - Schleifen

Vielleicht kann mir jemand auch noch einen tipp geben wie man das verkürzen kann:rolleyes:

Vielleicht hilft dir das ja:

int strcount(const string& str, char c)

{

	int count = 0;

	for(unsigned int i = 0; i < str.length(); i++)

		if(str[i] == c)

			count++;

	return count;

}

C ist angesagt ;)

hoopla. :upps

Naja, macht nichts:


int strcount(const char* str, char c, int strlen)

{

	int count = 0;

	for(int i = 0; i < strlen; i++)

		if(str[i] == c)

			count++;

	return count;

}

Hey schon mal vielen Dank für die antworten... aber kann mir jemand sagen wo mein fehler liegt?

Weil eigl müsste das so ja auch funktionieren, oder nicht?

Wieso stürzt der denn ab wenn ich das Programm ausführen möchte?:(

init von v fehlt z.B..

Wieso fehlt das denn?

Oben ist char v definiert und dann auch noch scanf("%c",v)...

Oder verstehe ich da etwas falsch?:confused:

Puhh jetzt bin ich völlig überfordert:)

Wie mache ich das denn? jetzt mal für ganz doofe...

habe schon ein bisschen rumprobiert, aber dann kommt vom kompiler immer eine fehlermeldung:(

Ich trottel:D

Es ist ja nur das &davor...

okay.. vielen vielen dank für die hilfe, ihr seid super:)

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.