Título: Busqueda de Archivos
Publicado por: Ingrid RG en 12 Abril 2016, 03:23 am
Estoy realizando un programa que revisa en un archivo si existe la palabra pero tengo un error, deja de buscar cuando hay un salto de linea. Les dejo mi codigo #include<stdio.h> #include<stdlib.h> #define MAX 100 char palabra[MAX], *p, c; int a=0, x; FILE *fp; void BuscarPalabra(){ printf("\n Ingresa una palabra: "); fgets(palabra ,MAX ,stdin ); int i=0,cont=0,j=0,h=0,flag=0; fp =fopen("diccionario", "r"); /**/ while(palabra[i]!='\0'&&palabra[i]!=10){ i++; cont++; } p =(char*)malloc(cont *sizeof(char)); /*printf("hhh%c",palabra[cont]); printf("La palabra ingresada tiene %d caracteres\n",cont);*/ /*c=fgetc(fp);*/ if(c!='*'&&c!=':'){ *(p+j)=c; /*printf("%c",*p);*/ j++; } } for(h=0;h<cont;h++){ if(palabra[h]==*(p+h)){ flag=1; } } if(flag==1){ printf("\n La palabra si existe :) \n"); }else{ printf("\n La palabra no existe :( \n"); } } int main(){ BuscarPalabra(); }
Mod: Los códigos deben ir en etiquetas GeSHi
Título: Re: Busqueda de Archivos
Publicado por: MAFUS en 13 Abril 2016, 00:37 am
Pon un ejemplo de ese diccionario.
Puede que este código te ayude #include <stdio.h> #include <string.h> #include <ctype.h> #include <stdlib.h> int main() { char palabra[50]; char parchivo[50]; FILE *fp; int i; int encontrada = 0; fgets(palabra , 50, stdin ); *strchr(palabra , '\n') = '\0'; // Elimino la nueva linea for(i = 0; i < strlen(palabra ); ++i ) // No sensible a la capitalización fp = fopen("diccionario.txt", "r"); if(!fp) { fprintf(stderr , "Archivo diccionario.txt no encontrado"); } while(!encontrada && !feof(fp )) { *strchr(parchivo , '\n') = '\0'; for(i = 0; i < strlen(parchivo ); ++i ) parchivo [i ] = tolower(parchivo [i ]); if(!strncmp(palabra , parchivo , 50)) // comparo dos cadenas encontrada = 1; } if(encontrada) printf("Palabra encontrada\n"); else printf("Palabra no encontrada\n"); return EXIT_SUCCESS; }
|