我说清楚点,因为我的程序有很多用来判断的表达式,但是这些要能够随时修改,所以我把它们都以字符串的形式存储在数据库里供程序调用。Foxbase都有这个功能,难道c++没有这个功能吗?

解决方案 »

  1.   

    Foxbase是解释程序,所以当然行.而且也只能进行简单的转换.而C++是什么,你写的代码经过C++编译器生成机器指令后.操作系统再去调用执行.所以说,你明白你现在要实现的功能是什么吗?那就是C++编译器所做的事情.
    换句话说.你要分析这些字串,再去计算它(从实质上看,相当于把表达式串转换为机器指令一样)也许,你再好好想想就会明白我所说的意思.(一个串,在计算机中是ASCII码表示的,但它作为表达式时,则其中是有变量的.也即是在程序运行时动态的概念.怎么可能有哪个函数能把串直接转换为表达式呢?假如让你做这个函数,你能实现吗?以前,我做一个平台时,需要在程序中完成这样的功能.所以当初我花了很长一段时间来把它做完了.其中涉及到编译原理. 做完后的东东基本能满足需求.但它仍不能与C++中的表达式相提并论(如位操作,条件表达式,逗号表达式等好像都没有)如果你需要,我要去找找.那是几年前的了.不一定会有的.
      

  2.   

    用YACC(BISON)和LEX来实现吧。