Dev - C++ - ¿Cómo contar las veces que un string se repite en otro C++?

 
Vista:

¿Cómo contar las veces que un string se repite en otro C++?

Publicado por Jean (2 intervenciones) el 03/03/2019 05:46:35
Hola me gustaria que me ayudaran con lo siguiente. Soy algo nuevo en c++ y me gustaria saber cómo puedo encontrar las veces que se repite un string dentro de otro. Por ejemplo un string que tenga almacenado lo siguiente:
string palabra="ABABDBDSBASDABSDBASDB";
string palabra2="SD";
Entonces lo que me gustaria saber es cuantas veces "SD" se repite en el primer string.

He buscado mucho pero las formas de contar que he encontrado han sido caracter por caracter y obvimante no me seriviría ya que me gustaria luego que el programa sea capaz de contar las veces que se repita "SDA" , "ABAB", ..... y los patrones que quiera.
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
Imágen de perfil de Alfil
Val: 4.344
Oro
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

¿Cómo contar las veces que un string se repite en otro C++?

Publicado por Alfil (1444 intervenciones) el 03/03/2019 07:37:08
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
#include <iostream>
 
using namespace std;
 
string texto = "ABABDBDSBASDABSDBASDB";
string palabra = "SD";
 
size_t pos = texto.find(palabra);
int veces = 0;
 
void buscar(){
    pos = texto.find(palabra);
 
    if(pos != string::npos){
        veces++;
        texto.erase(pos, 2);
        buscar();
    }else cout << "Se repite " << veces << " veces." << endl;
 
}
 
int main(){
 
    buscar();
 
    return 0;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

¿Cómo contar las veces que un string se repite en otro C++?

Publicado por Jean (2 intervenciones) el 03/03/2019 14:27:59
Gracias me ha sevido, tengo una una duda, el dos que pones en la linea 16, hace referencia al tamaño del string a buscar?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Alfil
Val: 4.344
Oro
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

¿Cómo contar las veces que un string se repite en otro C++?

Publicado por Alfil (1444 intervenciones) el 03/03/2019 17:52:56
pos = texto.find(palabra); devuelve la posición donde se encuentra la primera aparición de la cadena.

texto.erase(pos, 2); borra la parte de la cadena que empieza en la posición pos y abarca '2' caracteres.

De esta manera podemos volver a la función (función recursiva) y volver a buscar la primera aparición de la subcadena en la cadena.

Si quisiéramos posteriormente imprimir la cadena original completa deberíamos operar sobre una copia de la misma.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar