Ho risolto la seguente traccia:
Esercizio 1.
Scrivere un programma in linguaggio C che legge un file di testo e conta il numero di parole in esso
presenti. Ogni parola e’ terminata da uno dei seguenti caratteri
<spazio> , . ; : ? ! <invio>
Il programma deve inoltre creare un array in cui ogni elemento e’ una stringa. L’array dovra’
contenere tutte le parole del testo. Si stampi a video il contenuto dell’array.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define LUNG_MAX[];
int main(int argc, char* argv[])
{
FILE *fp;
int i;
int j;
char bufferlettura [LUNG_MAX];
if(argc!=2){
printf("Errore numero di parametri\n");
return 1;
}
if((fp=fopen(argv[1],"r"))==NULL){
printf("Errore apertura file\n");
return 1;
}
printf("File aperto ed ecco il contenuto\n");
int count = 0;
while(!feof(fp)){
fgets(bufferlettura, LUNG_MAX,fp);
count ++;
}
char parola[count][LUNG_MAX];
fseek(fp,0,SEEK_SET);
i=0;
while(!feof(fp)){
fgest(parola[i],LUNG_MAX,fp);
i++;
}
printf("Fine del file\n");
fclose(fp);
}
for(i=0; i<count-1; i++){
printf("parola %d: %s\n", i parola[i]);
for(j=0 j<strlen(parola); j++){
if(j == "?");
printf("%s", parola);
if(j == "!");
printf("%s", parola);
if(j == ";");
printf("%s", parola);
if(j == ".");
printf("%s", parola);
if(j == ",");
printf("%s", parola);
}
printf("\n");
fprintf(fp, "\n");
fclose(fp);
}
Dite che ho elaborato correttamente il programma?
P.S. Vi chiedo di rispondere cortesemente non come sempre, ma di aiutarmi discutendo in modo tale che potrò capire e magari i lettori apprezzeranno questo thread!