OK, te explico:
string text = "123*12"; // defino el dato donde va a estar lo que quieres hacer, por ejemplo, multiplicar 123 por 12
string caracter = "X"; // Defino un dato donde almacenare el *, el +, el - o la /, el signo de la operacion
int iPosicion; // Creo este dato para saber en que posición esta el dato de la operación
este bucle es para saber donde esta el dato que separa los dos numero y guardarlo en "carácter" y en "iPosicion" la posición.
for(unsigned int i = 0; i < text.length(); ++i)
{
if(text == '+' || text == '-' ||
text == '*' || text == '/')
{
caracter = text;
iPosicion = i;
}
}
Aquí paso el primer dato numérico a primero, que es desde la posición 0 hasta iPosicion, que lo obtuve en el bucle anterior
luego el segundo numero, que es desde iPosicion hasta la longuitud del texto y luego los convierto a numéricos con atoi,
una función que convierte de string a integer
string primero = text.substr(0, iPosicion);
string segundo = text.substr(iPosicion+1, text.length());
int iPrimero = atoi(primero.c_str());
int iSegundo = atoi(segundo.c_str());
Y por ultimo aquí hago la peracion según el carácter:
if(caracter == "+")
iResultado = iPrimero + iSegundo;
if(caracter == "-")
iResultado = iPrimero - iSegundo;
if(caracter == "*")
iResultado = iPrimero * iSegundo;
if(caracter == "/")
iResultado = iPrimero / iSegundo;
Los cout son para ir mostrando por pantalla los datos.
Un saludo.