while (!feof(fp)) {
fgets(par,20,fp);
if (strcmp(par,parola)==0) {
printf("\nNel file vi e\' %s ",parola);
fclose(fp);
return 0;
}
}
la parola non viene trovata anche se c'e'. Invece se nella if scrivo:
if (strstr(par,parola)!=NULL)
la trova. Ma ovviamente non ottengo sempre il risultato cercato. Come faccio
ad
usare appropriatamente la strcmp?
--
---------------------------------------------------
There are 10 kinds of people in the world:
those who understand binary, and those who don't
---------------------------------------------------
>Utilizzando questo ciclo per cercare una parola in un file:
<snip>
In che modo è fatto il file ?
Il ciclo, comunque, fai bene a riscriverlo:
while (fgets(stringa, dim, fp)) {
....
}
In ogni caso, assicurati di eliminare l'eventuale '\n' appeso da
fgets() alla stringa:
int i;
for (i = 0; s[i]; i++) if (s[i] == '\n') s[i] = '\0';
>la parola non viene trovata anche se c'e'. Invece se nella if scrivo:
>if (strstr(par,parola)!=NULL)
>la trova.
strcmp() fa un confronto tra due stringhe.
strstr() invece, cerca una stringa nell'altra.
Gli scopi sono diversi e vanno usate in dipendenza da come è costruito
il tuo file.
--
Andrea Laforgia
#exclude <windows.h>
E' un dizionario, le parole sono scritte una in ogni riga, cosi':
parola1
parola2
ecc.
Comunque, adesso funziona. Il problema era proprio l'accodamento del new
line. Thanks!
> la trova. Ma ovviamente non ottengo sempre il risultato cercato. Come faccio
> ad
> usare appropriatamente la strcmp?
Credo che il problema derivi dalla fgets e la dimensione della parola che
cerchi
--
Rhymes (rhy...@NOSPAMmyself.com)
linux registered user #219707
linux registered machine #172395