C/Visual C - Parser de expresiones lógicas

 
Vista:

Parser de expresiones lógicas

Publicado por Juan (1 intervención) el 01/09/2003 23:19:04
Hola, estoy necesitando la implementación en C de un parser que me permita resolver una consulta con expresiones lógicas, por ejemplo:
(NOMBRE = "JUAN" AND APELLIDO = "GRAY") OR (EDAD > 18)
O sea, algo que me permita separar operadores de operandos para resolver la consulta.
Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Parser de expresiones lógicas

Publicado por Ismael (230 intervenciones) el 03/09/2003 12:52:55
(NOMBRE = "JUAN" AND APELLIDO = "GRAY") OR (EDAD > 18)
Suponiendo que NOMBRE y APELLIDOS son variable capaces de guardar una cadena de caracteres (arrays), podrás hacerlo mas o menos:
if((strcmp(Nombre, "JUAN")==0)&&(strcpm(APELLIDOS, "GRAY")==0)) ||
(EDAD<18))

Creo recordar que:
strcmp devuelve cero si ambas cadena sopn idénticas
strcmpi para no diferenciar mayusculas de minusculas
strcnmp... para n caracteres...
Otra cosa es la prioridad de los operadores && y || en la expresión if(), es decir, cuidado con los paréntesis

Suerte
Ismael

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Parser de expresiones lógicas

Publicado por Juan (1 intervención) el 03/09/2003 14:59:42
Hola Ismael, el problema es que en el ejemplo NOMBRE Y APELLIDO no son variables que guardan strings, sino que son nombres de campos que van a ser ingresados así, por eso necesito parsear.
Saludos y espero puedas ayudarme.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar