Wyszukaj ciąg w pliku tekstowym C
Poniższy kod odczytuje plik tekstowy w tym samym czasie i drukuje go na standardowe wyjście:
#include <stdio.h>
int main()
{
char file_to_open[] = "text_file.txt", ch;
FILE *file_ptr;
if((file_ptr = fopen(file_to_open, "r")) != NULL)
{
while((ch = fgetc(file_ptr)) != EOF)
{
putchar(ch);
}
}
else
{
printf("Could not open %s\n", file_to_open);
return 1;
}
return(0);
}
Ale zamiast drukować na stdout [putchar (ch)] Chcę przeszukać plik pod kątem określonych ciągów dostarczonych w innym pliku tekstowym, tj. strings.txt i wypisz wiersz z dopasowaniem out.txt
text_file.txt
:
1993 - 1999 Pentium 1997 - 1999 Pentium II 1999 - 2003 Pentium III 1998 - 2009 Xeon 2006 - 2009 Intel Core 2
strings.txt
:
Nehalem AMD Athlon Pentium
W tym przypadku trzy pierwsze linietext_file.txt
pasuje. Zrobiłem kilka badań na temat operacji na plikach w C i wydaje mi się, że mogę czytać jedną postać w tym czasiefgetc
[jak ja w moim kodzie], jedna linia zfgets
i jeden blok zfread
, ale żadne słowo, jak sądzę, nie byłoby idealne w mojej sytuacji?