Dev - C++ - Ayuda con cadena de ocurrencias

 
Vista:
Imágen de perfil de Skornz
Val: 10
Ha aumentado 1 puesto en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Ayuda con cadena de ocurrencias

Publicado por Skornz (3 intervenciones) el 21/04/2017 07:28:23
Cuenta_Ocurrencias
Desarrolle un programa que dadas dos cadenas cad1 y cad2, determine la cantidad de veces que aparece la cadena cad2 en la cadena cad1, para ello implemente la función Cuenta_Ocurrencias que recibe las cadenas cad1 y cad2 y retorna la cantidad de veces que aparece cad1 en cad2.
Ejemplo 1:
cad1=”esto es muy sencillo”
cad2=”es”
al llamar a la función cuenta_ocurrencias deberá de retornar 2
Ejemplo 2:
cad1=”todo es posible en la medida que tu crees que es posible”
cad2=”e”
al llamar a la función cuenta_ocurrencias deberá retornar 9
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# include <iostream>
using namespace std;
int cuenta_ocurrencias(char[],char[]);
int main(){
	char cad1[100];
	char cad2[100];
	cin.getline(cad1,100);
	cin.getline(cad2,100);
	cout<<cuenta_ocurrencias(cad1,cad2);
	return 0;
}
int cuenta_ocurrencias(char cad1[], char cad2[]){
	int palabra=0;
	for(int i=1; cad1[i]!='\0'; i++){
		for(int j=1; cad2[j]!='\0'; j++){
			if(cad1[i]==cad2[j]){
				++palabra;
			}
		}
	}
	return palabra;
}

Mi problema es que debo agregarle para mi programa funcionen de manera como esta en los ejemplos, ya que para el primer ejemplo que muestro que dice "esto es muy sencillo" deberia de contarme solo las "es" pero lo que tengo hecho me cuenta tambien la "se". Agradeceria mucho si alguien fuera tan amable de ayudarme con este codigo que tengo.
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 Jair Dan

Ayuda con cadena de ocurrencias

Publicado por Jair Dan (1 intervención) el 21/04/2017 09:45:08
Aqui te envio mi codigo, se que no es el mejor del mundo pero espero que sirva de algo. ;)


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
# include <iostream>
 
using namespace std;
 
int cuenta_ocurrencias(char[], char[] );
 
int tamanio(char[]);
 
int main(){
	char cad1[100];
	char cad2[100];
	cin.getline(cad1,100);
	cin.getline(cad2,100);
	cout<<cuenta_ocurrencias(cad1,cad2);
	return 0;
}
 
int tamanio_cadena(char cad[]){
    int tamanio = 0;
    for(int i = 0; cad[i] != '\0'; i++){
    tamanio++;
    }
    return tamanio;
    }
 
int cuenta_ocurrencias(char cad1[], char cad2[]){
	int palabra=0;
	int tamanio=tamanio_cadena(cad2);
	int caracteres_iguales;
	for(int i=0; cad1[i]!='\0'; i++){
        if(cad1[i]==cad2[0]){
            caracteres_iguales = 0;
            for(int j=0; cad2[j]!='\0' && cad1[i+j]==cad2[j]; j++){
                    caracteres_iguales++;
                    if(caracteres_iguales == tamanio){
                        palabra++;
                    }
            }
        }
	}
	return palabra;
}
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 Skornz
Val: 10
Ha aumentado 1 puesto en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Ayuda con cadena de ocurrencias

Publicado por Skornz (3 intervenciones) el 21/04/2017 15:26:47
Gracias hermano te lo agradesco el codigo funciona de maravilla no se me paso por la mente que ocupaba otra funcion cualquier cosa que necesites estoy para servirte solo mandame un correo estoy eternamente agradecido por tu ayuda.
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