Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

strcmp non funziona

37 views
Skip to first unread message

davser

unread,
Feb 5, 2003, 8:03:17 AM2/5/03
to
Utilizzando questo ciclo per cercare una parola in un file:

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
---------------------------------------------------


Andrea Laforgia

unread,
Feb 5, 2003, 8:26:39 AM2/5/03
to
On Wed, 05 Feb 2003 13:03:17 GMT, "davser"
<davserto...@libero.it> wrote:

>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>

davser

unread,
Feb 5, 2003, 10:03:34 AM2/5/03
to
> In che modo è fatto il file ?

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!


Rhymes

unread,
Feb 5, 2003, 10:20:48 AM2/5/03
to
On Wed, 05 Feb 2003 13:03:17 +0000, davser wrote:

> 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

0 new messages