Qt解析四则运算表达式
2017-12-19 21:23
330 查看
利用Qt的QString和QStringList进行的简单的表达式解析,不带括号,可以是小数。
double MainWindow::calculate(QString str) { //利用递归去掉所有的加号 if(str.indexOf("+") != -1) { int i=str.indexOf("+"); return calculate(str.left(i))+calculate(str.right(str.length()-1-i)); } //去掉减号 if(str.indexOf("-") != -1) { QStringList list = str.split('-'); double value = calculate(list[0]); if(str.at(0) == "-") value = -value; for(int i=1; i<list.count(); ++i) { value -= calculate(list[i]); } return value; } //去掉乘号 if(str.indexOf("*") != -1) { int i=str.indexOf("*"); return calculate(str.left(i))*calculate(str.right(str.length()-1-i)); } //去掉除号 if(str.indexOf("/") != -1) { QStringList list = str.split('/'); double value = calculate(list[0]); for(int i=1; i<list.count(); ++i) { value /= calculate(list[i]); } return value; } return str.toDouble(); }
相关文章推荐
- QT之计算器对四则运算表达式的解析
- java 解析四则混合运算表达式并计算结果
- 【原创】Delphi实现数学表达式的计算(逆波兰式法)-四则运算解析
- 四则运算表达式解析
- 利用逆波兰表达式(后缀表达式)解析四则运算表达式的详细源代码及解释
- 四则运算表达式解析和求值(支持括号、小数)
- javascript中解析四则运算表达式的算法和示例
- javascript中解析四则运算表达式的算法和示例
- 栈的应用——四则运算表达式求值
- 四则运算表达式求值(栈的应用)
- 四则运算的中缀表达式和后缀表达式
- 栈的应用--四则运算表达式求值(java代码)
- 1024. 分析四则运算表达式
- boost正则表达式判断字符串是不是正确的四则运算
- 计算表达式的值(仅含有四则运算和支持括号嵌套,浮点数运算)
- 随机生成四则运算表达式02
- C++实现对数学基本运算表达式的解析
- 二叉树计算四则运算表达式
- 如何让计算机计算四则运算表达式[第一篇]
- 表达式(四则运算)计算的算法