/* RESOLVER EL PROBLEMA DE LA SOPA DE LETRAS
UTILIZANDO EL ALGORITMO DE BUSQUEDA
POR FUERZA BRUTA
J. Rafael R. Ochoa
*/
#include <stdio.h>
#include <conio.h>
#include <string.h>
#define EOL '\n'
char cadena[16];
char patron[16];
int search(char *, char *);
void pausa(void);
void main()
{ int result;
clrscr();
printf("\nBUSQUEDA POR FUERZA BRUTA...");
printf("\n\nAhora un patron a buscar (max 10)\n");
result=search(patron, cadena);
if (result!=0)
printf("\nEl patron se encuentra en la posiciOn: %d", result);
else
printf("\nEl patron no se encuentra en la cadena");
pausa();
clrscr();
}
int search(char *p, char *a)
{
int i, j, M=strlen(p), N=strlen(a);
printf("\nBUsqueda hacia la derecha: ");
for (i=0, j=0;j<M && i<N; i++, j++)
if (a[i] != p[j])
{i -= j;
j= -1;
}
if (j==M)
return (i-M+1);
else
{printf(" ...No se encontrO");
printf("\nBUsqueda hacia la izquierda: ");
for (i=N, j=0;j<M && i>=0; i--, j++)
if (a[i] != p[j])
{i += j;
j= -1;
}
if (j==M)
return (i+M+1);
else
{printf("...No se encontrO");
return 0;
}
}
}
void pausa()
{
gotoxy(40,23);
printf("oprima una tecla: ");
getche();
}