-2

我想问是否有人可以帮助我解决我的问题。

我必须将任意方程解析为变量和数字。

方程将是形式"y1 + y2 + ... + y10"

样本:"y1 + 2 y2 + 3y3 + y3 + 3 + 5 + 10 = y4 + 4"

可以有随机数量的空格。“y1”不是 1*y。它是 y,索引为 1。

我正在考虑以strchar(string," ")这种方式使用和解析它,但它可以没有空格,所以也许在 char 之后读取 char,但是我不知道如何做方程"3 y2",也许如果我考虑取第一个 char,然后读下一个字符while(char == " "),然后取下一个字符并查看它是变量还是“+”。我不需要它的源代码,我可以提示。

4

1 回答 1

0

我建议您在 Google 上搜索“C 解析库”。这是一个看起来很有趣的:

http://warp.povusers.org/FunctionParser/

嗯,那个实际上是 C++……如果你真的想要 C,还有其他的。

你不是第一个遇到这个问题的人,有图书馆可以解决它。

您也可以使用 Flex 和 Bison。这是一个教程。

http://gnuu.org/2009/09/18/writing-your-own-toy-compiler/

于 2013-03-14T18:55:50.423 回答