SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: ciber_lep en Viernes 13 de Agosto de 2004, 22:50

Título: Desborde
Publicado por: ciber_lep en Viernes 13 de Agosto de 2004, 22:50
hola, el problema que tengo es que estoy haciendo funciones que procesen datos de texto como si fueran numeros por ejemplo yo ingrese "6+3" y que el resultado me de 9 (la suma), pero como son texto no me es permitido, intente usando punteros pero me da desbordamiento, les agradecería si puedieran ayudarme, dandome unos consejos de como lograrlo. gracias :alien:
Título: Re: Desborde
Publicado por: Super_G en Sábado 14 de Agosto de 2004, 02:16
Dividiendo en cadenas:

condiciones iniciales que la cadena tenga solo numeros y un signo de operacion matematica

1) copiar los elementos(numericos) de la cadena a otra cadena hasta encontrar un signo de operacion.

2)identificar el signo

3)copiar el resto de los datos a una tercera cadena y hasta el final de la misma.

4)despues transformar las cadenas en numeros.

5)ejecutar la operacion matematica entre los numeros.


para la transformacion los numeros los numeros en la cadena estan en Ascii  ("0"=48;"1"=49...), restando 48 se obtiene el valor numerico.Para numero d emas de 2 digitos se esta base(no se si exista una funcion en c que pueda hacer la tansformacion directamente).

para identificar laoperacion matematica es similar("+"=43;"-"=45;...)
Título: Re: Desborde
Publicado por: ciber_lep en Sábado 14 de Agosto de 2004, 18:11
gracias por esto. pero esto me da otro problemita he intentado usando la macro isdigit() y usar la funciòn strcop() para copiar pero solo lo hace  para los dos primeros digitos y despues da u direcciones(4556&h). ¿debo usar otro ciclo(ejemplo while). les agracerè si me ayudan. gracias. :D
Título: Re: Desborde
Publicado por: Super_G en Lunes 16 de Agosto de 2004, 16:49
no fui muy especifico, en la "copia" me referia hacerlo caracter por caracter y comparar cada carecter, ¿sera ese el problema?.