elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  m gustaria que m revisaran este programa a ver si voy bien
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: m gustaria que m revisaran este programa a ver si voy bien  (Leído 3,306 veces)
eduardo17445

Desconectado Desconectado

Mensajes: 162


Ver Perfil
m gustaria que m revisaran este programa a ver si voy bien
« en: 16 Abril 2013, 05:41 am »

Realiza una función que, dada una cadena de caracteres y un carácter, devuelva el número de apariciones de dicho carácter en la cadena. Realiza un programa que lea una cadena de caracteres por teclado y escriba por pantalla el número de apariciones en la cadena de cada una de las vocales haciendo uso de la función definida.
//yo hice algo haci en  dev c++
#include <iostream>
#include <conio.h>
using namespace std;

int caracter(int a,int b,int c,int d,int e, int f)
{
    char v[5];
            a=a;
return a;
                 
}
int main()
{
     int a,b,c,d,e,f;
     int op;
     cout<<"";
     cin>>op;
     for(int=0;int<=5;int++)
     {
                 
    cout<<"ingrese el primer caracter"<<endl;
    cin>>a;
    cout<<"ingrese el segundo caracter"<<endl;
    cin>>b;
    cout<<"ingrese el segundo caracter"<<endl;
    cin>>c;
    cout<<"ingrese el segundo caracter"<<endl;
    cin>>d;
    cout<<"ingrese el segundo caracter"<<endl;
    cin>>e;
}
    cout<<"mostrar"<<caracter(a,b,c,d,e,f)<<endl;
    system ("pause");
    return 0;
}
   


En línea

satu


Desconectado Desconectado

Mensajes: 301

Siempre aprendiendo


Ver Perfil WWW
Re: m gustaria que m revisaran este programa a ver si voy bien
« Respuesta #1 en: 16 Abril 2013, 14:10 pm »

Buenas!!

Repasa bien tu código porque tienes cosas muy raras.

Te dejo aquí la solución:
Código
  1. #include <iostream>
  2. #include <cstring>
  3.  
  4. using namespace std;
  5.  
  6. int caracter(char *cadena, char c) {
  7.    int longitud = strlen(cadena), cont = 0;
  8.    for(int i = 0; i < longitud; i++) {
  9.        if(cadena[i] == c) {
  10.            cont++;
  11.        }
  12.    }
  13.    return cont;
  14. }
  15.  
  16. int main() {
  17.    char *cadena = new char[300];
  18.    cout << "escribe la cadena:" << endl;
  19.    cin.getline(cadena, 299);
  20.    cout << "Numero de veces que se repite la vocal \"a\": " << caracter(cadena, 'a') << endl;
  21.    cout << "Numero de veces que se repite la vocal \"e\": " << caracter(cadena, 'e') << endl;
  22.    cout << "Numero de veces que se repite la vocal \"i\": " << caracter(cadena, 'i') << endl;
  23.    cout << "Numero de veces que se repite la vocal \"o\": " << caracter(cadena, 'o') << endl;
  24.    cout << "Numero de veces que se repite la vocal \"u\": " << caracter(cadena, 'u') << endl;
  25.    cout << endl << "Pulsa Enter para salir.....";
  26.    cin.sync();
  27.    cin.get();
  28.    return 0;
  29. }
  30.  

Saludos


En línea

Breakbeat como forma de vida
mr.blood

Desconectado Desconectado

Mensajes: 150


Ver Perfil
Re: m gustaria que m revisaran este programa a ver si voy bien
« Respuesta #2 en: 16 Abril 2013, 15:59 pm »

Para no tener que recorrer la cadena tantas veces como letras busques, otro modo mas "eficiente" (al menos con cadenas largas y para buscar pocos caracteres).

No se C++ asi que lo hice en C, no creo que te cueste portarlo ;).

En items pasas el numero de elementos de vector, en este caso 10 (cada vocal y el numero de repeticiones).

Código
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. void character(char *string, char *vector, int items);
  5.  
  6. int main()
  7. {
  8. char string[]="Esta es una prueba";
  9. char vector[]={'a',0,'e',0,'i',0,'o',0,'u',0};
  10. int i;
  11.  
  12. character(string, vector, 10);
  13.  
  14. for(i=0;i<10;i+=2)
  15. printf("%c -- %i\n", vector[i], vector[i+1]);
  16.  
  17. return 0;
  18. }
  19.  
  20. void character(char *string, char *vector, int items)
  21. {
  22. int len=strlen(string), i=0, j=0;
  23. for(i=0;i<len;i++)
  24. for(j=0;j<items;j+=2)
  25. if(string[i]==vector[j])
  26. vector[j+1]++;
  27. }
  28.  

Sa1uDoS
« Última modificación: 16 Abril 2013, 16:01 pm por mr.blood » En línea

satu


Desconectado Desconectado

Mensajes: 301

Siempre aprendiendo


Ver Perfil WWW
Re: m gustaria que m revisaran este programa a ver si voy bien
« Respuesta #3 en: 16 Abril 2013, 22:55 pm »

Buenas!!

Pero eso no cumple con el enunciado:
Citar
Realiza una función que, dada una cadena de caracteres y un carácter, devuelva el número de apariciones de dicho carácter en la cadena.

Código
  1. int funcion(char *cadena, char caracter)

Saludos
En línea

Breakbeat como forma de vida
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines