如何求一个字符串表达式的值?

假定一个字符串表达式是有效的,如何求表达式的值?

例如:表达式35+2*3+6/4=42.5

暂时把题目写在这里。

//假定表达式是有效的

float getValue(char* exp);

先通过逐个取字符,将各个数字和运算符存入一个字符串数组和字符数组里

通过atoi函数转换,将各个字符串转换为整数(或者通过atof将字符串转换为浮点型数)

然后,再将各个数字和运算符的结果计算出来,这是一个有点复杂的过程。

碰到‘+’和‘-’,则将前面数值的结果计算出来;如果碰到‘*’或‘/',则将符号前后的数字和运算符分别保存进一个临时数组里,直到遇到加减运算法再将这个数值求出来,然后再向后计算。

如果写成代码的话,量还挺大。

你可能感兴趣的:(如何求一个字符串表达式的值?)