Originariamente inviato da giuseppe500
ciao.
Ho una funzione ricorsiva parsa con una variabile da parsare chiamata pFunc.
questa funzione viene richiamata fino a che le parentesi aperte contenute in pFunc sono piu' di una;e ad ogni chiamata elimina dalla variabile pFunc la parentesi aperta piu' esterna:

bool parsa(string pFunc)
{
.
.
.

}

pFunc="(((2)))"
Abbastanza semplice: quando entri nella funzione devi verificare, come prima cosa, se la stringa inizia con un '(' e se finisce con un ')'. Hai quindi 4 possibilità:
a) inizia con '(' e finisce con ')'
b) inizia con '(' ma non finisce con ')'
c) non inizia con '(' ma finisce con ')'
d) non inizia con '(' e non finisce con ')'

Nel caso a) devi chiamare in modo ricorsivo la funzione passando la stringa modificata dopo aver tolto ( e ) più esterni (hai testato infatti che inizia per '(' e finisce per ')'). In questo caso devi fare il return del valore ritornato dalla funzione chiamata ricorsivamente.
Altrimenti se non è il caso a), ti basta mettere un return che ritorni 'true' solo se si è nel caso d), altrimenti 'false'.

Credimi, è più semplice di quanto credi ....