c++接收字符串判断数字和符号 设计计算器
时间: 2023-12-14 14:35:50 浏览: 80
设计一个简单的计算器,可以接收一个包含加减乘除运算符的字符串,然后根据运算符计算出结果。
具体步骤如下:
1. 定义一个字符串变量,接收用户输入的字符串。
2. 遍历字符串中的每个字符,判断字符是否为数字或者运算符。
3. 如果是数字,将其转换为数字,并将其压入一个栈中。
4. 如果是运算符,从栈中弹出两个数进行运算,并将结果压入栈中。
5. 最终栈中只剩下一个数,即为计算结果。
以下是代码示例:
```c++
#include<iostream>
#include<stack>
#include<string>
using namespace std;
int main()
{
string str;
stack<int> s;
getline(cin, str); // 输入包含加减乘除运算符的字符串
for (int i = 0; i < str.size(); i++)
{
if (isdigit(str[i])) // 判断是否为数字
{
int num = str[i] - '0';
while (isdigit(str[i+1])) // 处理多位数字
{
num = num * 10 + str[i+1] - '0';
i++;
}
s.push(num);
}
else if (str[i] == '+' || str[i] == '-' || str[i] == '*' || str[i] == '/')
{
int a = s.top();
s.pop();
int b = s.top();
s.pop();
if (str[i] == '+')
s.push(b + a);
else if (str[i] == '-')
s.push(b - a);
else if (str[i] == '*')
s.push(b * a);
else if (str[i] == '/')
s.push(b / a);
}
}
cout << "计算结果:" << s.top() << endl;
return 0;
}
```
注意:这个计算器只能进行简单的加减乘除运算,如果需要实现更复杂的计算功能,需要设计更为复杂的算法。
阅读全文