Wie kann ich in C aus einer normalen Textdatei mehrere Wörter auslesen?
Also ich gebe in meinem .c Programm einen String ein, der soll in der Text Datei gesucht werden. Dabei sind das jedoch leider eben nicht nur Wörter, sondern mehrere Wörter mit Leerzeichen (also meine Eingabe ist mit Leerzeichen). Kann ich das einfach mit strstr machen oder gibt es eine ähnlich einfache verständliche anfängerfreundliche Lösung dafür? Hier Code bis jetzt (noch sehr unsauber, ich wollte es aber nur testen):
Sry wegen der Formatierung, nur mit [Code]-Tags scheint das nicht zu klappen.
[CODE]
printf("Gesellschaft: ");
fgets(fluggesellschaft, 100, stdin);
datei1=fopen("Fluggesellschaft.txt", "r+b");
fgets(TextinDatei, sizeof(TextinDatei), datei1);
if((strstr(TextinDatei, fluggesellschaft))==NULL){
printf("\nkonnte wort nicht finden.\n\n");
}
[/CODE]
1 Antwort
Du kannst weiterhin mit strstr arbeiten (angenommen, dein Suchstring ist ein kompletter Satz, den du in der Datei suchen möchtest).
Sollen die eingegebenen Wörter jedoch einzeln gesucht werden, braucht es Schleifen. Zum einen zur Aufteilung der Eingabedaten in einzelne Wörter (gespeichert in einem Aggregat), zum anderen zur Iteration über diese. So wird je Durchlauf geprüft, ob das aktuelle Element in der Datei vorkommt.
Den Inhalt der Datei solltest du dir so lange in einer eigenen Variable speichern.
Gut :D es hat sich selber erklärt. Danke trotzdem (ich hatte einen Fehler beim Einlesen bei mir)
Bitte benenne ihn, für den (unwahrscheinlichen) Fall, dass mal jemand mit dem gleichen Problem auf diese Seite stößt.
Ok, danke! Habe ich den Inhalt nicht schon in "TextinDatei" gelegt?