FUERZA_BRUTA.c



/* 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();
}