I would like to convert a string
passed to a value of type double
.
Example:
string expressao = "1+1";
double x, y;
So, x = expressao[0];
and y = expressao[1];
And the sum of x+y
returned 2 in response.
I've read some things about atof
, but I could not apply it properly.
Follow the code below:
#include <iostream>
#include <stdlib.h>
#include <string>
using namespace std;
double resultado(string); // prototipo
int main()
{
string expressao;
cout << "Exemplo de Expressão:\n\n1+2\n\n";
cout << "Insira uma expressão:";
getline(cin, expressao);
cout << expressao << " = " << resultado(expressao) << endl;
}
double resultado(string valor) {
double x, y;
/*
gostaria de recuperar apenas os valores numericos. Por exemplo:
Se a minha entrada for 1+1
gostaria repartir a entrada(1+1) em duas partes.
1. valor[0] para recuperar o valor 1
2. valor[1] para recuperar o outro valor 1 depois do sinal(+)
3. em seguida gostaria de converter esses dois char(valor[0] e valor[1]) em valores do tipo double par assim, somá-los e retorná-los.
*/
return x;
/*
if (opr[1] == '+') {
return x+y;
} else if (opr[1] == '-') {
return x-y;
} else if (opr[1] == '*') {
return x*y;
} else if (opr[1] == '/') {
return x/y;
} else {
return 0.0;
}
*/
}