1)Bho,adesso ho provato , e strcmp () mi va anche senza includere string.h...Originariamente inviato da internet
1) per comparare le stringhe in c si usa la funzione strcmp()codice:#include <stdio.h> #include <string.h> main () { char pass [128]; char esci; for ( ; ; ) { printf ("Inserisci la password per uscire:\n"); fgets (pass, sizeof(pass), stdin); if (strcmp(pass,"ciao\n") == 0) /* oppure */ if (strncmp(pass,"ciao",4) == 0) break; } printf ("Complimenti!\n"); /* getchar(); al posto di scanf */ scanf ("%c",&esci); }
dichiarata in string.h,
strncmp() compara i primi n caratteri
2) la funzione gets() rende il tuo programma vulnerabile da exploit
basati su buffer overrun, meglio usare fgets che ti permettere
di dare un limite al numero di caratteri da registrare.
3) in C89 non puoi dichiarare una variabile in mezzo al codice
char esci;
lo puoi dichiarare solo all'inizio di un blocco {},
In c99 si può fare, ma questo standard è supportato solo con GCC
quindi niente VC++ o Borland.
In c++ si può fare da sempre.
4) al posto di scanf("%c", &esci);
puoi usare la più semplice getchar(); che restituisce anche
il carattere letto nel caso ne avessi bisogno.
CIao
2)ok
3)con il mio compilatore (LCC win32) funziona lo stesso
4)si lo so, io solitamente usavo getch () che fa la medesima cosa, nn so perchè quì ho usato quel metodo

Rispondi quotando