#include <stdio.h>
#include <assert.h>
#define MAX 80
#define FALSE 0
#define TRUE 1
void CopiaInvertida(char palavra[], char invertida[]);
int BuscaPalavra( char palavra[], char texto[] );
void CopiaInvertida(char palavra[], char invertida[]) {
int i,j;
for ( i = 0; palavra[i] != '\0'; i++ )
;
invertida[i] = palavra[i]; /* copia '\0' */
j = 0;
for ( i--; i >= 0; i-- ) {
invertida[j] = palavra[i];
j++;
}
return;
}
int BuscaPalavra( char palavra[], char texto[] ) {
int i, j, achei;
achei = FALSE;
for ( i = 0; texto[i] != '\0' && !achei; i++ ) {
achei = TRUE;
for ( j = 0; palavra[j] != '\0' && achei; j++ )
if ( palavra[j] != texto[i+j] )
achei = FALSE;
/* achei==TRUE sss i é ocorrencia de palavra no texto */
}
return achei;
}
int main()
{
char palavra[MAX], texto[MAX], invertida[MAX];
scanf( "%s", palavra );
scanf( " %[^\n]", texto );
CopiaInvertida( palavra, invertida );
if ( BuscaPalavra( palavra, texto ) == TRUE )
printf( "A palavra %s encontra-se em %s\n",
palavra, texto );
else
printf( "A palavra %s NAO se encontra em %s\n",
palavra, texto );
if ( BuscaPalavra( invertida, texto ) == TRUE )
printf( "A palavra %s encontra-se invertida em %s\n",
palavra, txexto );
else
printf("A palavra %s NAO se encontra invertida em %s\n",
palavra, texto );
return 0;
}