【发布时间】:2017-08-16 19:42:06
【问题描述】:
我正在编写一个操作系统。 所以我想知道如何使用像 extract() 这样的用户定义函数将像 (2*(7+8)-9)+2 这样的表达式初始化为变量:
extract(char a[])
{
//some code
}
char expr[] = "(2*(7+8)-9)+2";
int value = extract(expr);
我这样做是为了从字符串初始化变量。(任何提示/想法/建议?)
【问题讨论】:
-
extract 在其他语言中的行为类似于
eval。你需要写一个算术解释器。顺便说一句,你为什么要这样初始化value? -
你在写一个操作系统,问如何解析一个简单的表达式?
-
是的,我编辑了它
-
请帮帮我。
-
如果您是 C 新手,那么从像中缀表达式解析器这样复杂的东西开始就太难了。首先从评估后缀表达式开始,您会发现它要容易得多。如果您想查看 postifx 表达式解析器的示例(用 C++ 编写,因此不是 C 的完美示例,但会为您提供一般结构),请查看此处提供的 postfix.cpp:courses.cs.sfu.ca/2016sp-cmpt-135-d1/pages/Assignment1
标签: c string variables integer expression