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