#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<stdlib.h>
int main (){
FILE *fp;
FILE *fp1;
//dichiarazione variabili
char stringa[30][20],nome[30],nome2[30];
int f[30],i=0,j=0,cont=0;
//azzero il vettore "f" e il vettore di stringhe "stringa"
for (j=0;j<30;j++){
f[j]=0;
stringa[j][0]='\0';
}
system("color 0b");
//inserisco il nome del file da aprire
printf("\n\t\tINSERISCI NOME FILE : ");
gets(nome);
//apro il file
fp=fopen("nome","r");
if(fp){
while(!feof(fp)){
fscanf(fp,"%s",stringa[i]);
for (j=0;j<30;j++){
//quando trovo parole uguali aggiorno la frequenza
if((!strcmp(stringa[i],stringa[j]))&&(j!=i)){
f[j]=f[j]+2;
cont=1;
break;
}
}
//aumento indice se parola viene letta la prima volta
if (cont==0){
i++;
}
}
//chiudo il file
fclose(fp);
}
else{
printf ("\n\t\terrore durante l'apertura del file.") ;
}
//chiedo il nome del file dove salvare l'elenco
printf("\n\t\tINSERISCI NOME FILE DOVE SALVARE L'ELENCO: ");
gets(nome2);
//apro il file
fp1=fopen("nome2","w");
//Salvo l'elenco delle parole con le loro frequenze
for (i=0;i<30;i++){
fprintf(fp1,"\n\t\t %s %d",stringa[i],f[i]);
}
//chiudo il file
fclose(fp1);
system("cls");
printf("\n\\t\tINDICE ANALITICO");
//stampo l'indice non ordinato
for (i=0;i<30;i++){
printf("\n\t\t %s %d",stringa[i],f[i]);
}
getch();
}
ecco il programma che ho provato a fare io
non funziona correttamente in pratica non conta correttamente la frequenza delle parole nel testo
e non so come ordinare lindice alla fine :///
qlc mi aiuta?