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

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  [RETO] + Funcion Extraer Numeros de Cadenas! [Cpp/C]
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] 3 4 Ir Abajo Respuesta Imprimir
Autor Tema: [RETO] + Funcion Extraer Numeros de Cadenas! [Cpp/C]  (Leído 34,602 veces)
El_Java

Desconectado Desconectado

Mensajes: 144



Ver Perfil WWW
Re: [RETO] + Funcion Extraer Numeros de Cadenas! [Cpp/C]
« Respuesta #10 en: 5 Enero 2012, 13:01 pm »

Aquí os dejo mi versión, tiene complejidad O(str.size()):

EDITO: Pongo el algoritmo como forma de función, thanks EI

Código
  1. #include <iostream>
  2. #include <cctype>
  3. using namespace std;
  4.  
  5. string extraer(const string &str){
  6.    string aux;
  7.    for(int a=0; a<(int)str.size(); a++) if(isdigit(str[a])) aux.push_back(str[a]);
  8.  
  9.    return aux;
  10. }
  11.  
  12. int main(){
  13.    string str;
  14.  
  15.    str = "ewiuc3dskhd8nkd62ndsnk9";
  16.    //cin >> str;
  17.  
  18.    str = extraer(str);
  19.    cout << str << endl;
  20.  
  21.    return 0;
  22. }


« Última modificación: 5 Enero 2012, 22:49 pm por El_Java » En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.937


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: [RETO] + Funcion Extraer Numeros de Cadenas! [Cpp/C]
« Respuesta #11 en: 5 Enero 2012, 13:06 pm »

La verdad es que los requisitos no estan bien definidos pero me parece que se pidio una FUNCION. ¿Con un codigo solo ya es suficiente, no?


En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
alexis33de

Desconectado Desconectado

Mensajes: 56


Ver Perfil
Re: [RETO] + Funcion Extraer Numeros de Cadenas! [Cpp/C]
« Respuesta #12 en: 5 Enero 2012, 14:31 pm »

El mio soy nuevo en esto de c++, asi que espero respuestas q me ayuden a mejorar  :rolleyes:
Código
  1. #include <iostream>
  2. #include <string.h>
  3. #include <stdio.h>
  4. using namespace std;
  5. int extraer(char cad[50])
  6. {
  7.    for(int i=0;i<=strlen(cad);i++)
  8.    {
  9.        if(cad[i]>='0'&&cad[i]<='9')
  10.        {
  11.         cout<<cad[i];
  12.        }
  13.  
  14.    }
  15.    return 0;
  16. }
  17. int main()
  18. {
  19.    char cadena[50];
  20.    cout << "coloque la cadena" << endl;
  21.    gets(cadena);
  22.    cout<<extraer(cadena);
  23.  
  24.    return 0;
  25. }
En línea

rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: [RETO] + Funcion Extraer Numeros de Cadenas! [Cpp/C]
« Respuesta #13 en: 5 Enero 2012, 17:03 pm »

El algoritmo (procesar cada carácter de forma secuencial) esta bien. Lo que si hay que cambiar son algunos detalles como los nombres de los encabezados (deberían ser <cstdio> y <cstring>) y evitar el uso de la función "gets". Tampoco utilizas el valor de retorno de la función (en lugar de imprimir cada dígito debes calcular el numero y retornarlo).

Para el caso te conviene leer el tema |Lo que no hay que hacer en C/C++. Nivel basico|.

Un saludo
En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.937


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: [RETO] + Funcion Extraer Numeros de Cadenas! [Cpp/C]
« Respuesta #14 en: 5 Enero 2012, 17:15 pm »

alexis33de: empujar el resultado de extraer en cout no tiene ningun sentido, lo unico que logras es escribir un 0 que no es parte del input en pantalla (en mi codigo sirve para imprimir la cadena que retorna mi funcion).
En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
m0rf


Desconectado Desconectado

Mensajes: 828


BACK!


Ver Perfil
Re: [RETO] + Funcion Extraer Numeros de Cadenas! [Cpp/C]
« Respuesta #15 en: 5 Enero 2012, 17:25 pm »

Hay va mi codigo:
Código
  1.  
  2. #include <stdio.h>
  3. #include <string.h>
  4. #include <ctype.h>
  5.  
  6. int llistar_numeros(char frase[])
  7. {
  8.  
  9. int numcars = strlen(frase);
  10. int cont=0;
  11.  
  12. while(cont<numcars){
  13.  
  14.                    if (isdigit(frase[cont]))
  15.                    {
  16.                     printf("%c",frase[cont]);
  17.                    }
  18. cont++;
  19. }
  20.  
  21. }
  22.  
  23. int main()
  24. {
  25.  
  26. char paraula[] = "as3k34nk3k3n4nkl2n4n3n2n888888nn8n8nn8nn8n8nkn87k6n78";
  27.  
  28. llistar_numeros(paraula[]);
  29.  
  30. }
  31.  
  32.  

PD: Como puedo hacer para identar con colores el codigo?
« Última modificación: 5 Enero 2012, 17:33 pm por Eternal Idol » En línea

Si todos fuéramos igual de inteligentes no existiría la mediocridad porque no podríamos apreciarla. Aprecias la mediocridad?
Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.937


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: [RETO] + Funcion Extraer Numeros de Cadenas! [Cpp/C]
« Respuesta #16 en: 5 Enero 2012, 17:34 pm »

m0rf: Tenes que poner el lenguaje del codigo en cuestion: code=c (pone editar en tu mensaje ahora y vas a ver el cambio tal y como lo hice).
En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
m0rf


Desconectado Desconectado

Mensajes: 828


BACK!


Ver Perfil
Re: [RETO] + Funcion Extraer Numeros de Cadenas! [Cpp/C]
« Respuesta #17 en: 5 Enero 2012, 17:37 pm »

Vale gracias.

Por cierto para utilizar la libreria time.h para saber el tiempo que gasta en encontrar los numeros, que hago pongo un printf con el tiempo al principio de la aplicación y al final o solo al final?

En línea

Si todos fuéramos igual de inteligentes no existiría la mediocridad porque no podríamos apreciarla. Aprecias la mediocridad?
Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.937


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: [RETO] + Funcion Extraer Numeros de Cadenas! [Cpp/C]
« Respuesta #18 en: 5 Enero 2012, 17:40 pm »

Tenes que obtener el valor al comienzo y al final (del programa o de la funcion, no se, el autor del reto hara las pruebas) para poder hacer el calculo de cuanto tardo.
En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
ace332

Desconectado Desconectado

Mensajes: 66


Ver Perfil
Re: [RETO] + Funcion Extraer Numeros de Cadenas! [Cpp/C]
« Respuesta #19 en: 5 Enero 2012, 18:18 pm »

@GarbageCollecter
Tu codigo tiene una declaración que es absurda... mas en espesifico const char *p...

¡Absurda! ¿Porqué?! :xD

const char *p;

indica que los caracteres apuntados por p no serán modificados como es el caso de la función. La función printf también hace uso de const char *.
En línea

Páginas: 1 [2] 3 4 Ir Arriba Respuesta Imprimir 

Ir a:  

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