PDA

Visualizza la versione completa : [C] Implementare funzione di confronto tra stringhe


=tW=
08-11-2006, 21:29
ciao!
come faccio a capire se due stringhe sono uguali? ho provato con ==, strcmp, ma niente, due stringhe con scritto ciao entrambe, il c me le reputa diverse...cm confronto 2 stringhe???aiutatemiiiiiiii!!!

MItaly
08-11-2006, 21:39
Con strcmp; se strcmp restituisce 0 allora le due stringhe sono uguali.
@oregon: per una volta ti ho battuto sul tempo!

oregon
08-11-2006, 21:39
Devi usare la funzione strcmp, ma devi usarla correttamente ... cosa hai scritto?

P.S. @MItaly ... questa volta sei stato qualche secondo piu' veloce ... :)

=tW=
08-11-2006, 23:08
vi metto il codice


char ins[512],pass[512];
printf("Inserisci la password:\t");
scanf("%s",ins);

while(!(strcmp(ins,pass)){
system("cls");
printf("Inserisci la password:\t");
scanf("%s",pass);
}

però anche facendo copia incolla con la stessa stringa me le segna come diverse...non so a questo punto mi chiedevo se non mi convenisse confrontarle cella per cella con un ciclo for...

oregon
08-11-2006, 23:28
Due errori in grassetto ...



while(strcmp(ins,pass))
{
system("cls");
printf("Inserisci la password:\t");
scanf("%s",ins);
}

=tW=
08-11-2006, 23:41
ma a me serve controllare che la 2 pass sia uguale alla prima...perchè all'avvio chiede la pass all'utente e la tiene finchè non la rimette uguale

oregon
08-11-2006, 23:57
Spiegati meglio ... quello che chiedi e' esattamente quello che fa il codice con le correzioni ...

=tW=
09-11-2006, 14:44
ok, allora. l'utente avvia il mio programma e il programma richiede la password, dopodichè disabilita alcuni tasti per evitare che sia terminato e rimane in esecuzione finchè l'utente non reinserisce la stessa password, in modo da riabilitare i tasti...mi serve come blocca schermo, in poche parole...solo che il confronto tra stringhe non funziona...so che con password numeriche sarebbe più facile, ma sarebbe anche meno sicuro...mi aiutate x favore?

oregon
09-11-2006, 14:56
Guarda che il codice che funziona e' quello che ti ho mostrato. Se qualcosa non va, mostra nuovamente le linee di codice che non vanno e fammi un esempio completo.

La password conosciuta dove sta? Nella variabile pass?

E la password inserita dall'utente? Nella variabile ins?

MItaly
09-11-2006, 14:57
Guarda che il codice di oregon fa esattamente quello che chiedi... finché (while) le due stringhe sono diverse (strcmp() restituisce un valore diverso da zero) il blocco while viene ripetuto.

Loading