| bfox2269 (10) | |
|
so iv been doing alot of looking on how to do this i see atoi alot but just donst seem to work form me bool ope(char op) { if (op=='+' || op=='-' || op=='/' || op=='*' || op=='^'){ return true; } else{ return false; } } int calculate(string p) { char first; char second; int sum; int f; int s; for(int i=0; i< p.length();i++){ if(ope(p[i])==true){ first = p[i-2]; second = p[i-1]; f= atoi(first); <---- what to convert first to and int s= atoi(second);< ----- what to convert second to and int if(p[i]=='*'){ sum = first *second; } if(p[i]=='/'){ sum = first / second; } if(p[i]=='+'){ sum = first + second; } if(p[i]=='-'){ sum = first - second; } } } } | |
|
|
|
| strongdrink (456) | |||
atoi takes a const char* as a parameter, not a char.
| |||
|
|
|||
| bfox2269 (10) | |
| then what do i want to use if the char isnt const my first and second will be changing, since its going thru an array. | |
|
|
|
| IceThatJaw (418) | |
You don't need atoi for this case. Atoi expects a const char* as seen here:http://www.cplusplus.com/reference/clibrary/cstdlib/atoi/ A few options: f = (int)first; s = (int)second; You could also use a static cast like so: f = static_cast<int>(first); s = static_cast<int>(second); Many compilers don't even require an explicit cast from char to int so this should work as well: f = first; s = second; | |
|
|
|
| Hermann (5) | |
|
you can use atoi by passing the address because it expects a pointer: f= atoi(&first); s= atoi(&second); | |
|
|
|