c++编写函数addStr,该函数的参数s指向一个仅由加法运算符和正整数组成的合法的表达式,函数计算表达式的值并返回。
时间: 2024-03-16 08:41:24 浏览: 74
可以使用栈来实现该函数。遍历字符串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();
}
```
注意,该函数没有对表达式的合法性进行检查,如果表达式不合法,可能会导致程序出错。
阅读全文
相关推荐
![txt](https://img-home.csdnimg.cn/images/20241231045021.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![txt](https://img-home.csdnimg.cn/images/20241231045021.png)
![-](https://img-home.csdnimg.cn/images/20241231044930.png)
![-](https://img-home.csdnimg.cn/images/20241231044930.png)
![-](https://img-home.csdnimg.cn/images/20241231044937.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)