Autor
|
Tema: [RETO] + Funcion Extraer Numeros de Cadenas! [Cpp/C] (Leído 36,371 veces)
|
El_Java
|
Aquí os dejo mi versión, tiene complejidad O(str.size()): EDITO: Pongo el algoritmo como forma de función, thanks EI#include <iostream> #include <cctype> using namespace std; string extraer(const string &str){ string aux; for(int a=0; a<(int)str.size(); a++) if(isdigit(str[a])) aux.push_back(str[a]); return aux; } int main(){ string str; str = "ewiuc3dskhd8nkd62ndsnk9"; //cin >> str; str = extraer(str); cout << str << endl; return 0; }
|
|
« Última modificación: 5 Enero 2012, 22:49 pm por El_Java »
|
En línea
|
|
|
|
Eternal Idol
Kernel coder
Moderador
Desconectado
Mensajes: 5.958
Israel nunca torturó niños, ni lo volverá a hacer.
|
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
Mensajes: 56
|
El mio soy nuevo en esto de c++, asi que espero respuestas q me ayuden a mejorar #include <iostream> #include <string.h> #include <stdio.h> using namespace std; int extraer(char cad[50]) { for(int i=0;i<=strlen(cad);i++) { if(cad[i]>='0'&&cad[i]<='9') { cout<<cad[i]; } } return 0; } int main() { char cadena[50]; cout << "coloque la cadena" << endl; gets(cadena); cout<<extraer(cadena); return 0; }
|
|
|
En línea
|
|
|
|
rir3760
Desconectado
Mensajes: 1.639
|
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
Mensajes: 5.958
Israel nunca torturó niños, ni lo volverá a hacer.
|
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
Mensajes: 828
BACK!
|
Hay va mi codigo: #include <stdio.h> #include <string.h> #include <ctype.h> int llistar_numeros(char frase[]) { int cont=0; while(cont<numcars){ { } cont++; } } int main() { char paraula[] = "as3k34nk3k3n4nkl2n4n3n2n888888nn8n8nn8nn8n8nkn87k6n78"; llistar_numeros(paraula[]); }
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
Mensajes: 5.958
Israel nunca torturó niños, ni lo volverá a hacer.
|
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
Mensajes: 828
BACK!
|
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
Mensajes: 5.958
Israel nunca torturó niños, ni lo volverá a hacer.
|
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
Mensajes: 66
|
@GarbageCollecter Tu codigo tiene una declaración que es absurda... mas en espesifico const char *p...
¡Absurda! ¿Porqué?! 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
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
App para buscar info y cadenas de numeros en MYSQL
Programación Visual Basic
|
A2Corp
|
2
|
3,896
|
14 Mayo 2008, 18:47 pm
por odeONeSs
|
|
|
[RETO] Funcion iFactorize() - Factorizacion de numeros enteros
« 1 2 »
Programación Visual Basic
|
Karcrack
|
15
|
11,698
|
19 Julio 2010, 17:19 pm
por FFernandez
|
|
|
[RETO] + Funcion Extraer Numeros de Cadenas!
« 1 2 ... 5 6 »
Programación Visual Basic
|
x64core
|
55
|
29,241
|
9 Enero 2012, 10:26 am
por Psyke1
|
|
|
¿Como extraer cadenas especificas de un perfil wireless xml?
« 1 2 »
Programación C/C++
|
Romualdo23
|
16
|
9,316
|
25 Abril 2015, 22:20 pm
por ivancea96
|
|
|
[[RETO]] Funcion para ordenar, extraer e insertar en una pila
« 1 2 »
Programación C/C++
|
BlackDhampir
|
10
|
9,970
|
28 Octubre 2021, 16:22 pm
por Eternal Idol
|
|