Sono un amatore completo quando si tratta di C e ho avuto qualche problema nel tentativo di scrivere questo pezzo di codice. Voglio che controlli il file di testo per ogni riga che corrisponde alla stringa specificata.Ricerca file di testo per la stringa corrispondente
Ad esempio, se "stackoverflow" era nel file di testo e la stringa che ho inserito era "www.stackoverflow.com" dovrebbe restituire una corrispondenza positiva.
Ma attualmente sta cercando la stringa all'interno del file di testo, che è l'opposto di quello che voglio. Gradirei qualche suggerimento/consiglio!
int Check(char *fname, char *str) {
FILE *file;
int i = 1;
int r = 0;
char temp[1000];
if((file = fopen(fname, "r")) == NULL) {
return(-1);
}
while(fgets(temp, 1000, file) != NULL) {
if((strstr(temp, str)) != NULL) {
printf("Host name found on line: %d\n", i);
printf("\n%s\n", str);
r++;
}
i++;
}
if(r == 0) {
printf("\nHost name not blocked.\n");
}
if(file) {
fclose(file);
}
return(0);
}
Ciao, benvenuto su StackOverflow! Hai provato a cambiare 'strstr (temp, str)' con 'strstr (str, temp)'? –
Sì, ma quando ho provato a non ottenere risultati anche se le stringhe che stavo confrontando erano identiche. – Piglet
Si ricorda che 'fgets' acquisisce una nuova riga finale (' \ n'); potrebbe essere necessario eliminarlo da soli. –