Dev - C++ - Ayuda ejercicio de inserccion

   
Vista:

Ayuda ejercicio de inserccion

Publicado por Federico (11 intervenciones) el 12/01/2018 13:39:23
Tengo un problema con un ejercicio:

De na una clase SecuenciaCaracteres para trabajar con una secuencia de caracteres (datos de tipo char) y proporcione:
constructor(es), metodos para obtener el caracter que hay en un indice determinado, obtener la longitud actual
de la secuencia, su capacidad maxima y a~nadir un caracter nuevo.
Implemente un metodo para sustituir todas las apariciones de un caracter y poner en su lugar una segunda secuencia
de caracteres. El metodo modi ca la secuencia original.
Por ejemplo, si la secuencia original contiene
a f g a r a b p f
El resultado de sustituir el caracter 'a' por la secuencia n e w seria
n e w f g n e w r n e w b p f


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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
#include <iostream>
using namespace std;
 
 
class SecuenciaCaracteres{
	private:
		static const int TAMANIO = 1000;
		char vector [TAMANIO];
		int total_utilizados;
 
	public:
		SecuenciaCaracteres(){
			total_utilizados = 0;
		}
 
		char Elemento (int indice){
			return vector[indice];
		}
 
		int TotalUtilizados (){
			return total_utilizados;
		}
 
		int Capacidad (){
			return TAMANIO;
		}
 
		void Aniade (char elemento){
			vector [total_utilizados] = elemento;
			total_utilizados ++;
		}
 
		int NumeroCaracter (char caracter){
			int contador =0;
			for (int i=0; i<TotalUtilizados(); i++){
				if (caracter == Elemento (i))
					contador++;
			}
			return contador;
		}
 
		int Buscar (char caracter){
 
			for (int i=0; i<TotalUtilizados(); i++){
				if (caracter = Elemento (i))
					return i;
			}
 
		}
 
		void Insertar (int posicion,char caracter){
			for (int i=TotalUtilizados(); i < posicion; i--){
				Aniade (Elemento (i-1));
			}
			vector [posicion] = caracter;
			total_utilizados++;
		}
 
 
 
		void Sustitucion (SecuenciaCaracteres secuencia, char caracter){
			int numero_caracteres = NumeroCaracter (caracter);
			int posicion;
 
			for (int i=0; i<numero_caracteres; i++){
				posicion = Buscar (caracter);
 
 
				for (int i=0; i<secuencia.TotalUtilizados(); i++)
					Insertar (posicion+i, secuencia.Elemento(i));
			}
 
		}
 
		void Imprimir (){
			for (int i=0; i< TotalUtilizados(); i++)
				cout << Elemento(i);
 
			cout << "\n";
		}
 
 
 
};
 
 
int main (){
	SecuenciaCaracteres secuencia1;
	SecuenciaCaracteres secuencia2;
 
	secuencia1.Aniade('a');
	secuencia1.Aniade('f');
	secuencia1.Aniade('g');
	secuencia1.Aniade('a');
	secuencia1.Aniade('r');
 
 
	secuencia1.Imprimir();
 
	secuencia2.Aniade('n');
	secuencia2.Aniade('e');
	secuencia2.Aniade('w');
 
	secuencia2.Imprimir();
 
 
	secuencia1.Sustitucion(secuencia2, 'a');
 
	secuencia1.Imprimir();
 
 
 
}




El resultado no me sale correcto sale como newar, ayuda porfavor
gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder