Ciao a tutti,

ho un piccolo problema con le string.
Il mio programma legge da tastiera un'espressione matematica. L'idea più semplice che mi è venuta è stata:

codice:
string token;

cin >> token;
while (token.compare(terminator) != 0)
{
    outputVector.push_back(token);
    cin >> token;
}
Il che funziona piuttosto bene. Il problema è che se io scrivo "(3 + 4)", con questo metodo viene diviso in 3 string:
codice:
(3
+
4)
Il che naturalmente non è bello...

In pratica dovrei prendere una string del tipo (xxx) e riuscire ad aggiungere al vettore la parentesi (se c'è), la parte centrale, e la parentesi finale (se c'è).
In realtà ovviamente ce ne sarà sempre e solo una, però così può gestire entrambi i casi.

Ho provato a scrivere un pezzettino di codice che avrebbe anche funzionato in teoria, ma il tutto si è infranto miseramente contro il fatto che string::c_str() ritorna un CONST char*, che quindi non posso modificare.

In ogni caso, sento che questa soluzione non è elegante, ci deve essere qualcosa di meglio... (parlo anche proprio della fase di lettura).

Avete qualche suggerimento?