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

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Cambiar de String a natural
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Cambiar de String a natural  (Leído 3,874 veces)
HIDE_95

Desconectado Desconectado

Mensajes: 9



Ver Perfil
Cambiar de String a natural
« en: 8 Septiembre 2015, 18:42 pm »

Buenas, estoy haciendo un programa y me he quedado atascado en un subalgoritmo... En este subalgoritmo  le paso como parametro de entrada un string con digitos y simbolos( '+' o '-' ) y me tiene que devolver el resultado de la expresion puesta en la cadena de caracteres. Mi duda es como puedo pasar los digitos , por ejemplo , 123 a un numero natural para poder sumarlo. No se me ocurre nada , solo pasarlo caracter a caracter . Espero que me podais echar una mano. Gracias


« Última modificación: 8 Septiembre 2015, 23:38 pm por HIDE_95 » En línea

Bob1098

Desconectado Desconectado

Mensajes: 87


Ver Perfil
Re: Cambiar de String a natural
« Respuesta #1 en: 8 Septiembre 2015, 20:58 pm »

Una idea que puedo darte sería comprobar si el carácter siguiente al que te encuentras (i+1) es un digito o no con la función isdigit() de ctype. Si no lo es, los caracteres que lleves contados los guardas y los conviertes en decimal utilizando funciones como atoi().

Espero que te haya ayudado.


« Última modificación: 8 Septiembre 2015, 20:59 pm por Bob1098 » En línea

HIDE_95

Desconectado Desconectado

Mensajes: 9



Ver Perfil
Re: Cambiar de String a natural
« Respuesta #2 en: 8 Septiembre 2015, 22:41 pm »

El profesor , no quiere que utilizemos ninguna biblioteca que no sea  la array , string o iostream para el diseño de este programa y el lenguaje c++... Pero muchas gracias de todas maneras
En línea

Bob1098

Desconectado Desconectado

Mensajes: 87


Ver Perfil
Re: Cambiar de String a natural
« Respuesta #3 en: 8 Septiembre 2015, 23:20 pm »

Bueno, puedes crear tu propia función para comprobar si es digito o no, comprobando si el carácter es '1', '2'.. etc. Y para la conversion vas a tener que currártelo un poco mas. Puedes guardar los valores en array de int.

Un saludo.
En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Cambiar de String a natural
« Respuesta #4 en: 8 Septiembre 2015, 23:27 pm »

Si te doy un conjunto de datos (en papel), del tipo:

Primera cifra:  1
Segunda cifra:  8
Tercera cifra:  4

¿Sabrías, mediante operaciones aritméticas (concatenar no vale), formar el número?

Si la respuesta es sí, solo tienes que hacer eso mismo con código.
Dado un caracter '5', para convertirlo al número 5, tienes que restarle el valor ascii del 0. El valor ascii del 0 es 48, pero en C++ puedes poner simplemente:

Código
  1. char c = '5';
  2. int n = c - '0';

Ahora "n" es 5. Haces eso cada vez que necesites el valor numérico de un caracter.

Luego, si no sabes convertir una cadena a un número, es:

Código:
Cifras: 5 4 8 6
Numero = 5*10^3 + 4*10^2 + 8*10^1 + 6*10^0

O, abstrayendo el concepto:
Código:
Por cada cifra:
Numero = Numero + cifra*10^indice
Siendo el indice la posicion de la cifra, empezando desde 0 desde la derecha
En línea

HIDE_95

Desconectado Desconectado

Mensajes: 9



Ver Perfil
Re: Cambiar de String a natural
« Respuesta #5 en: 8 Septiembre 2015, 23:39 pm »

Muchisimas gracias compañeros. Ya lo he entendido :D . Muy buena la explicacion ivancea :D
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

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