Identificar si la cadena a buscar esta a la izquierda o a la derecha
Publicado por Hernan (1 intervención) el 02/05/2017 21:03:52
Buenas tardes.
Tengo ya éste código que busca una cadena de texto dentro de la entrada inicial.
Este programa me indica si la cadena de texto existe, en que posición y el número de veces que se encontró.
Sin embargo necesito saber si el texto buscado está a la derecha o a la izquierda.
Por ejemplo:
Entrada: AMDUF558HGGU
Texto bucado: DU
Se encontró: SI
Posición:3
Izquierda o Derecha: Izquierda (esta parte me falta)
Aquí dejo mi código esperando su ayuda.
Tengo ya éste código que busca una cadena de texto dentro de la entrada inicial.
Este programa me indica si la cadena de texto existe, en que posición y el número de veces que se encontró.
Sin embargo necesito saber si el texto buscado está a la derecha o a la izquierda.
Por ejemplo:
Entrada: AMDUF558HGGU
Texto bucado: DU
Se encontró: SI
Posición:3
Izquierda o Derecha: Izquierda (esta parte me falta)
Aquí dejo mi código esperando su ayuda.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#include<iostream>
#include<string.h>
#include <stdlib.h>
#define MAXT 1000
#define MAXP 1000
using namespace std;
char Entrada[MAXT] ;
char Secuencia[MAXP] ;
signed int rep ;
signed int comp ;
void busqueda(char *b, int a, int cadena[])
{
int i;
for (i = 0; i < 256; ++i)
cadena[i] = a;
for (i = 0; i < a - 1; ++i)
{
cadena[b[i]] = a - i - 1;
}
}
void compara( char *d, int e , char *f, int g)
{
int j , busqueda1[256] ;
char c ;
busqueda(f, g, busqueda1) ;
j = 0;
while (j <= e - g)
{
c = d[j + g - 1] ;
if ( f[g - 1] == c && memcmp(f, d + j, g - 1) == 0 )
{
cout<<endl<<"Posición en la que se localiza : "<< j + 1 << endl;
rep ++ ;
}
j = j + busqueda1[c] ; comp ++ ;
}
}
int main()
{
cout<<endl<<"Teclea Entrada : " ;
gets( Entrada ) ;
cout<<endl<<"Teclea la Secuencia a buscar : " ;
gets( Secuencia ) ;
int in = strlen( Entrada ) ;
int sec = strlen( Secuencia ) ;
compara( Entrada , in , Secuencia , sec ) ;
if(rep == 0)
cout<<endl<<"ERROR - Esa cadena de caracteres NO existe " ;
else
cout<<endl<<"Numero de veces que aparece la secuencia : "<< rep ;
cout<<endl<<endl<<"Comparaciones : "<< comp ;
cout<<endl;
cout<<endl;
system("pause");
return 0;
}
Valora esta pregunta
0