Salve, sto cercando di fare un programma che in un testo conti il numero di parole, il numero di frase e il numero di parole per frasi.Le parole, oltre che dagli spazi, possono essere separate da:
virgola,punto e virgola, punto esclamativo, punto interrogativo, due punti, punto fisso.
Due dei caratteri appena citati non sono mai consecutivi(per esempio dopo il punto fisso non viene lasciato lo spazio prima di iniziare la prossima frase).
Se per esempio prendo in esame un testo di questo genere:
I risultati dovrebbero essere
n.frasi:3
n.parole:9
n.parole per frase:1 7 1
La compilazione invece è la seguente:
Vi posto il codice della funzione:
codice:
int lettura(char vs[][maxl],int *nf, int npf[])
{
FILE* f;
int i,k,z,b,l;
b=0;
char nome[10];
char a;
i=0;k=0;z=0;
printf("Inserire il nome del file:\n");
scanf("%s", nome);
f=fopen(nome, "r");
if(f==NULL)
{
i=-1;
}
else
{
while(feof(f)==0)
{
fscanf(f,"%c", &a);
if(a!=' ' && a!='.' && a!=':' && a!=';' && a!='?' && a!='!' && a!=',')
{
vs[i][k]=a;
k=k+1;
}
else
{
vs[i][k]='\0';
i=i+1;
k=0;
if(a!=' ' && a!=',')
{
*nf=*nf+1;
l=i-b;
npf[z]=l;
b=i;
z=z+1;
}
}
}
fclose(f);
}
return i;
}