![]() |
Hola y bienvenida de los Estados Unidos a la UNIX y Linux Foros! Gracias por su visita y formar parte de nuestra comunidad global.
|
|
google unix.com
|
|||||||
| Foros | Registro | Reglas de los Foros | Enlaces | Álbumes | Preguntas más frecuentes | Lista de miembros | Calendario | Búsqueda | Puestos de hoy | Marcar Foros Como Leídos |
| Programación de Alto Nivel Plantear preguntas acerca de C, C + +, Java, SQL, y otros lenguajes de programación aquí. |
Más UNIX y Linux Foro Temas usted puede encontrar útiles
|
||||
| Hilo | Hilo para principiantes | Foro | Respuestas | Último mensaje |
| ¿cómo se puede buscar una cadena en un archivo de texto y sustituir toda la línea en otro archivo | kkraja | UNIX for Dummies Preguntas y Respuestas | 6 | 08-06-2008 08:23 AM |
| Buscar una cadena de texto y añadir después de la cadena | kesu2k | Programación de scripts de shell y | 8 | 07-18-2008 08:35 PM |
| búsqueda de cadena de texto | itik | AIX | 2 | 01-28-2008 07:01 PM |
| Perl: Buscar cadena en la línea de búsqueda y reemplazo de texto | Crypto | Programación de scripts de shell y | 4 | 01-04-2008 10:24 AM |
| añadiendo a la cadena de archivo de texto sobre la base de búsqueda | malaymaru | Programación de scripts de shell y | 1 | 06-09-2006 09:53 AM |
![]() |
|
|
Linkback vínculo | Herramientas de hilo | Buscar en este Hilo | Tasa de Hilo | Modos de visualización |
|
|
|
||||
|
Buscar una cadena en un archivo de texto en C
Hola,
Necesito ayuda con un programa de codificación Estoy en C. Lo que mi programa tiene que hacer es buscar una cadena en un archivo de texto, si se encuentra una coincidencia, la cadena de impresión a la salida. El archivo tiene el siguiente aspecto: 000001 California 100000 Texas 011110 Ohio 010101 Washington Por lo tanto, si el programa encuentra una coincidencia, se imprime "100000 Texas" a la salida. ¿Podría usted ayudarme? Les pido disculpas por mi mala Inglés. |
|
||||
|
Código:
/* srch.c usage: srch filename "string to find"
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
int main(int argc, char **argv)
{
FILE *fp=fopen(argv[1],"r");
char tmp[256]={0x0};
while(fp!=NULL && fget(tmp, sizeof(tmp), fp)!=NULL)
{
if (strstr(tmp, argv[2])
printf("%s", tmp);
}
if(fp!=NULL) fclose(fp);
return 0;
}
|
|
||||
|
¡Gracias!, Gracias hombre, ... Gracias ...
I corregido "fgets" y "si las funciones de ... Código:
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
int main(int argc, char **argv)
{
FILE *fp=fopen(argv[1],"r");
char tmp[256]={0x0};
while(fp!=NULL && fgets(tmp, sizeof(tmp),fp)!=NULL)
{
if (strstr(tmp, argv[2]))
printf("%s", tmp);
}
if(fp!=NULL) fclose(fp);
return 0;
}
|
|
||||
|
No he logrado escribir - dos veces.
|
|
||||
|
Yo sé
![]() |
|
||||
|
No cuando no esta la cadena de búsqueda cruza dos' tmp 'bloque?
|
|
||||
|
No es la búsqueda línea por línea, fgets obtiene una línea a la vez. tmp [256] pueden leer en hasta 255 caracteres. Ninguna línea en el ejemplo de texto es mayor que 40. N problema.
Como una solución general, el uso tmp [LINE_MAX] donde LINE_MAX se define en la mayoría de herramientas UNIX limits.h línea límite de tamaño a lo que es LINE_MAX para su sistema. |
![]() |
| Marcadores |
| Herramientas de hilo | Buscar en este Hilo |
| Modos de visualización | Vota a este hilo |
|
|