Oppure

Loading
08/02/12 11:00
cripto_419
Salve a tutti! ho fatto un codice che verifica se un testo contiene parole italiane. Il programma prende in input un file e si avvale di un altro file di testo (dizionario.txt) dove ho messo le parole italiane più frequenti. Con una strcmp verifico quante parole italiane sono presenti e ne traggo le conclusioni. Ora il mio problema è che nonostante metto in input un testo italiano non riconosce la presenza di parole italiane! Riuscite a trovare cosa c'è che non va?
#include<stdio.h>
#include<stdlib.h>
#include<string.h>

int italiano(char *n_file);
int main(void)
{
	char *nome_file1;
	nome_file1=malloc(50*sizeof(char));
		
	printf("Inserisci il nome del file\n");
	scanf("%s", nome_file1);
	
	if(italiano(nome_file1))
		printf("il testo e' italiano!");
	else
		printf("il testo non e' italiano!");
		
	return 0;
}

int italiano(char *n_file)
  {
	FILE *g, *f;
	
	f=fopen(n_file, "r");
	g=fopen("C:\dizionario.txt", "r");
	
	char *parola=malloc(25*sizeof(char));
    char *str=malloc(25*sizeof(char));
	int ita=0;
	
	while((fscanf(f, "%s", str))!=EOF)  {
		while((fscanf(g, "%s", parola))!=EOF) 
		  if(strcmp(str, parola)==0)
			ita++;  }
	
	fclose(g);  fclose(f);

	printf("%d\n", ita);
	
	if(ita>5)
	  return 1;
	else 
	  return 0;
  
  }
aaa
08/02/12 11:07
HeDo
è meglio che lavori sulle frequenze delle lettere:

it.wikipedia.org/wiki/…
aaa
08/02/12 12:14
nessuno
Il secondo while esplora una volta il file ma già dalla seconda non lo fa più perché il puntatore è alla fine ...
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.