Ich bin ein absoluter Amateur, wenn es um C geht und ich hatte einige Probleme mit dem Versuch, dieses Stück Code zu schreiben. Ich möchte, dass die Textdatei auf jede Zeile überprüft wird, die der angegebenen Zeichenfolge entspricht.Suche Textdatei für übereinstimmende Zeichenfolge
Zum Beispiel, wenn "stackoverflow" in der Textdatei war und die Zeichenfolge, die ich eingegeben wurde, "www.stackoverflow.com" war, sollte es eine positive Übereinstimmung zurückgeben.
Aber derzeit sucht es nach der Zeichenfolge innerhalb der Textdatei, die das Gegenteil von dem ist, was ich will. Ich würde mich über Hinweise/Tipps freuen!
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);
}
Hallo, willkommen zu StackOverflow! Haben Sie versucht, 'strstr (temp, str)' mit 'strstr (str, temp)' zu wechseln? –
Ja, aber wenn ich es versuchte, würde ich keine Ergebnisse erhalten, auch wenn die Strings, die ich verglichen habe, identisch waren. – Piglet
Bitte beachten Sie, dass 'fgets' einen abschließenden Zeilenumbruch (' \ n') enthält; Sie müssen das vielleicht selbst entfernen. –