Salve, vorrei un parere sul seguente esercizio:
ES: (Visualizzare una stringa al contrario) Scrivete una funzione ricorsiva string_reverse che riceva come argomento un vettore di caratteri, lo visualizzi al contrario (dall'ultimo carattere al primo) e non restituisca nessun dato. La funzione dovrà terminare la propria elaborazione e restituire il controllo a quella chiamante, quando avrà incontrato il carattere nullo di terminazione della stringa.
Io l'ho svolto in questo modo:
#include <stdio.h>
void string_reverse(const char str[], int y);
int main()
{
char stringa[] = "ciao mondo";
int i = 0;
printf("\n");
string_reverse(stringa, i);
printf("\n\n");
return 0;
}
void string_reverse(const char str[], int y)
{
if(str[y] == '\0')
return;
string_reverse(str, y + 1);
printf("%c", str[y]);
}
Il codice funziona ma non sono riuscito a rispettare la traccia poichè ho passato alla funzione una variabile oltre il vettore di caratteri. Sapreste dirmi come fare? Ho provato ad inizializzare la variabile nella funzione stessa per scorrere i caratteri ma ovviamente viene inizializzata ad ogni chiamata e il codice non funzionerebbe.
Grazie