Buona sera , sono alle prese con questo programma:
/* Si scriva una funzione che prenda come parametro il nome di un ?le e restituisca,
nel modo che si ritiene piu` opportuno, i seguenti quattro valori:
1. il numero totale di caratteri presenti nel ?le (inclusi spazi bianchi e ritorno a capo)
2. il numero di parole totali presenti nel ?le,dove per parola si intende qualsiasi sequenza non nulli di caratteri saparati da spazi bianchi o ritorno a capo;
3. il numero di righe totali del ?le.
4. la lunghezza della parola piu` lunga presente nel ?le
*/
I primi tre punti sono riuscita a farli senza problemi e a video mi danno un risultato corretto, il 4° punto invece no. L'ho elabarato nel seguente modo:
int lunghezza_parola_massima(char *nome){
FILE *fp;
int res, conta=0, max=0;
char buf[200];
fp=fopen(nome, "r");
while((res=fgetc(fp))!=EOF){
if(res!=' ' && res!='\n'){
conta++;
}
if(conta>max){
max=conta;
conta=0;
}
else{
conta=0;
}
}
fclose(fp);
return max;
}