Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Problema con un char* en c++

Estas en el tema de Problema con un char* en c++ en el foro de C/C++ en Foros del Web. Buenas, soy algo nuevo en esto y necesito hacer un programa con un arbol de expresiones, en la que el usuario digite una expresion, ejemplo: ...
  #1 (permalink)  
Antiguo 21/04/2010, 12:24
 
Fecha de Ingreso: abril-2010
Mensajes: 31
Antigüedad: 14 años, 8 meses
Puntos: 1
Problema con un char* en c++

Buenas, soy algo nuevo en esto y necesito hacer un programa con un arbol de expresiones, en la que el usuario digite una expresion, ejemplo:

(2-3)*4+(5+8)/2

Necesito meter esa expresion en un arbol de expresiones para evaluarla, desplegarla en forma infija, postfija y prefija. Toda la estructura del árbol y sus recorridos ya se como hacerlo.

Ahora, el problema es para meter la expresión al arbol, pues necesito convertirla a su forma postfija y luego ingresar cada caracter como un nodo, el problema es que no se como recorrer ese char * para ir analizando cada caracter e ingresarlo a una pila o a la expresión postfija según corresponda.

Imagino que el código sería algo así:

Código C++:
Ver original
  1. char * infijoAPostfijo(char *infija){
  2.     Pila *pila = new Pila();
  3.     char *postfijo = "";
  4.     for(int i = 0; StrComp(infija[i], "\0") != 0; i++){
  5.        
  6.         //Y aqui hago toda la evaluacion para saber si
  7.         //Es un número o un operador y acomodarlo en
  8.         //La expresion postfija
  9.        
  10.     }
  11.  
  12. }

Pero el problema que tengo es que cuando hago el StrComp, para saber si llegó al final me da un error:

[C++Error] UAplicacion.cpp(24): Cannot convert 'int' to 'char *'.

Y en fin, no se como podría recorrer el char * para ir evaluando caracter por caracter.

Y otro problema que tendría es que necesito saber si un caracter es un número o no, imagino que se podría haciendo una simple comparación como

Código C++:
Ver original
  1. //Pregunto si es mayor o igual a 0 y menor o igual a 9
  2. if(StrComp(caracter, "0") >= 0; && StrComp(caracter, "9")<= 0)

Si alguien me puede ayudar, se lo agradecería mucho.

Última edición por Mosazu; 21/04/2010 a las 12:37

Etiquetas: char
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:07.