El siguiente código lee un archivo de texto, un carácter a la vez y lo imprime en la salida estándar:Buscar cadena en archivo de texto C
#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);
}
Pero en lugar de imprimir a la salida estándar [putchar (CH)] Quiero buscar en el archivo cadenas específicas proporcionadas en otro archivo de texto, es decir. strings.txt y la salida de la línea con el partido a 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
En este caso las tres primeras líneas de text_file.txt
se correspondería. He realizado algunas investigaciones sobre las operaciones de archivos en C, y parece que puedo leer un carácter a la vez con fgetc
[como lo hago en mi código], una línea con fgets
y un bloque con fread
, pero no hay palabras como supongo sería perfecto en mi situación?
por qué se desea escribir este programa ?! Usa grep/awk/sed para hacer esto. –
No, Tim. Las etiquetas son para buscar Nadie va a buscar eso. – GManNickG
Sí, sé que con las herramientas estándar de Unix puedo resolver esto en cuestión de segundos, pero esto es para obtener una comprensión más profunda de C archivo IO. –