c++编写函数addStr,该函数的参数s指向一个仅由加法运算符和正整数组成的合法的表达式,函数计算表达式的值并返回。
时间: 2024-03-16 18:41:24 浏览: 69
可以使用栈来实现该函数。遍历字符串s,每当遇到数字时,将其转换为整型数并压入栈中,当遇到加号时,弹出栈顶的两个元素,计算它们的和,并将结果压入栈中。最后栈中仅剩一个元素,即表达式的值,返回即可。代码如下:
```c++
int addStr(char* s) {
stack<int> stk;
int i = 0;
while (s[i]) {
if (s[i] >= '0' && s[i] <= '9') {
int num = 0;
while (s[i] >= '0' && s[i] <= '9') {
num = num * 10 + s[i] - '0';
i++;
}
stk.push(num);
} else if (s[i] == '+') {
int a = stk.top();
stk.pop();
int b = stk.top();
stk.pop();
stk.push(a + b);
i++;
} else {
i++;
}
}
return stk.top();
}
```
注意,该函数没有对表达式的合法性进行检查,如果表达式不合法,可能会导致程序出错。
阅读全文