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.