[C] Funzione ricorsiva per modificare stringa
Non ho capito bene le funzioni ricorsive che modificano stringhe o array
Nel senso, ho capito il procedimento che si applica per quelle che devono calcolare serie, fare operazioni algebriche, calcolare somma di elementi di un array...
Ma ho problemi con esercizi tipo
"Scrivere una funzione che data una stringa s, restituisca una stringa ottenuta da s sostituendo ogni spazio bianco con il carattere underscore ('_')"
oppure
"Funzione che data una stringa s restituisca la stringa ottenuta da s eliminando le vocali"
Per la prima avevo pensato ad una soluzione di questo tipo ma non funziona..
e poi come chiamarla nel main?
Un altro problema che non riesco a risolvere è la ricerca del massimo di un array con una funzione ricorsiva.
return
Nel senso, ho capito il procedimento che si applica per quelle che devono calcolare serie, fare operazioni algebriche, calcolare somma di elementi di un array...
Ma ho problemi con esercizi tipo
"Scrivere una funzione che data una stringa s, restituisca una stringa ottenuta da s sostituendo ogni spazio bianco con il carattere underscore ('_')"
oppure
"Funzione che data una stringa s restituisca la stringa ottenuta da s eliminando le vocali"
Per la prima avevo pensato ad una soluzione di questo tipo ma non funziona..
int underscore (char *p){ if(*p=='\0') return; else if (*P!=' ') {*p='_';} return underscore (p++);}
e poi come chiamarla nel main?
Un altro problema che non riesco a risolvere è la ricerca del massimo di un array con una funzione ricorsiva.
int max (int v[],int dim){ int r; if (dim==1) return v[0]; else{r=max(v,dim-1); if(r>v[dim-1]) return r; else return (v[dim-1]); } }
return
Risposte
Per la prima avevo pensato ad una soluzione di questo tipo ma non funziona..
La funzione ritorna un int per definizione, ma esegue return senza 'ritornare' niente.
Comunque a parte questa precisazione, io userei p[0] al posto del puntatore nelle operazioni sul char; ti è chiaro il perché?
Un altro problema che non riesco a risolvere è la ricerca del massimo di un array con una funzione ricorsiva.
Hai verificato cosa fa effettivamente la funzione da te scritta? E che ne vien fuori?