文字列を整数に変換する方法を考えてみました。C の古い atoi() と、文字列型を整数に変換する sstream 関数を知っています。接頭辞表記を取り、結果を再帰的に生成するプログラムを作成しようとしています。文字列の代わりに char を使用するとプログラムは動作しますが、この問題を解決するために文字列をどのように使用すればよいかよくわかりません。ユーザーが + 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;
}