c++实现简易计算器,输入字符串s,就能计算出结果,不允许使用任何将字符串作为数学表达式计算的内置函数,比如eval
时间: 2024-09-23 08:16:08 浏览: 94
C++ 简易计算器 实现简易表达式计算
为了实现一个简易的C++计算器,我们可以使用栈来处理操作数和操作符。以下是一个简单的实现:
```cpp
#include <iostream>
#include <stack>
#include <string>
#include <sstream>
int precedence(char op) {
if (op == '+' || op == '-') return 1;
if (op == '*' || op == '/') return 2;
return 0;
}
int applyOp(int a, int b, char op) {
switch (op) {
case '+': return a + b;
case '-': return a - b;
case '*': return a * b;
case '/': return a / b;
}
return 0;
}
int evaluate(std::string s) {
std::stack<int> values;
std::stack<char> ops;
for (int i = 0; i < s.length(); i++) {
if (s[i] == ' ') continue;
if (isdigit(s[i])) {
int val = 0;
while (i < s.length() && isdigit(s[i])) {
val = (val * 10) + (s[i] - '0');
i++;
}
values.push(val);
i--;
} else if (s[i] == '(') {
ops.push(s[i]);
} else if (s[i] == ')') {
while (!ops.empty() && ops.top() != '(') {
int val2 = values.top();
values.pop();
int val1 = values.top();
values.pop();
char op = ops.top();
ops.
阅读全文