我一直在想办法将字符串转换为整数,我知道 C 中的旧 atoi() 以及将字符串类型转换为整数的 sstream 函数。我正在尝试编写一个程序,该程序采用前缀表示法并递归地产生结果。当我使用 char 而不是 string 时,该程序可以工作,但我不确定我应该如何使用字符串来解决这个问题。我必须拥有它,以便用户输入 + 3 3 并且结果是 6。
#include <iostream>
#include <string>
using namespace std;
int stringToAscii(string value){
if (value == '+')
return '+';
if (value == '*')
return '*';
if (value == '-')
return '-';
if (value == '/')
return '/';
}
int prefixNotationCalc(string value){
char newValue = value;
int number1=0;
int number2=0;
//while () {
switch (newValue){
case '*':
cin >> number1;
cin >> number2;
return (number1*number2);
break;
case '+':
cin >> number1;
cin >> number2;
return (number1+number2);
break;
case '-':
cin >> number1;
cin >> number2;
return (number1-number2);
break;
case '/':
cin >> number1;
cin >> number2;
return (number1/number2);
break;
}
//}
}
int main (){
//The function takes in a string value
string value;
cin >> value;
cout << "Result is: "<< prefixNotationCalc(value)<< endl;
return 0;
}