Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [C++] Reverse di stringhe con funzione ricorsiva

    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)

    codice:
    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:

    codice:
    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.
    Ultima modifica di LeleFT; 11-05-2018 a 12:07 Motivo: Aggiunti i tag CODE

  2. #2
    Scusate, ho risolto

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.