PDA

Visualizza la versione completa : [C++] Reverse di stringhe con funzione ricorsiva


Calderino
11-05-2018, 10:29
Buongiorno a tutti,

sono nuovo del forum, quindi saluto tutti, e mi presento, sono autodidatta, mi piace la programmazione (tanto da farne un hobby) ho iniziato con il VB, sono passato al C, poi ora sono al C++.....

Sto leggendo il C++fondamenti di programmazione dei fratelli Deitel st� cercando di risolvere un esercizio(il 7.36) che recita scrivete una funzione ricorsiva che inverta una stringa.

L'esercizio l'ho risolto con il seguente listato. (� obbligo usare le stringhe come vettori)



void reverse(char stringa[], int dimensione)
{//gira la stringa al contrario
if (dimensione == 0) {
cout << endl;
return;
}
cout << stringa[dimensione - 1];
reverse(stringa, dimensione - 1);
return;
}



funziona ma non mi piace, inizialmente avevo scritto questo:



void reverse(char stringa[])
{//gira la stringa al contrario
if (stringa[0] == '\0') {
cout << endl;
return;
}
int i = strlen(stringa);
cout << stringa[i - 1];
stringa[i - 1] = '\0';

reverse(stringa);
return;
}



che pero' mi solleva un eccezione quando vado ad assegnare '\0' al posto dell'ultimo carattere.

sembra che la stringa non sia modificabile, ma e' un vettore e quindi non passato per valore,

cos'e' che non ho capito?

grazie.

Calderino
11-05-2018, 11:45
Scusate, ho risolto

Loading