disperate (Normal User)
Newbie
Messaggi: 8
Iscritto: 02/04/2010
|
Salve,
ho questo prototipo:
Codice sorgente - presumibilmente C/C++ |
int ricInverti(char s[], char s1[]);
|
Utilizzando la ricorsione devo scrivere una funzione che inverte la stringa s.
Qualcuno sa come la posso fare? (Inoltre ammetto di essere perplessa perchè con le strighe di caratteri ho sempre usato il void e non l'int...)
Ringrazio chiunque riesca ad aiutarmi
N.B. non posso modificare il prototipo.
|
|
XBarboX (Member)
Guru
Messaggi: 945
Iscritto: 31/12/2008
|
ok si può fare, ma non possiamo risolverti da 0 il tuo problema, fai almeno "finta" di postare un pezzetto di codice.
Non siamo una software house.
|
|
disperate (Normal User)
Newbie
Messaggi: 8
Iscritto: 02/04/2010
|
ok anche se sono sicurissima di aver scritto una emerita scempiaggine ecco:
Codice sorgente - presumibilmente C++ |
using namespace std; int ricInverti(char [], char []); #define MAX 10 int main () { char s[MAX]; char s1[MAX]; int n,i; cin>>s; n=strlen(s); /*arrivata qui non so come chiamare la funzione per far stampare la stringa invertita*/ } system("PAUSE"); return 0; } int ricInverti(char s[], char s1[]) { int len = strlen(s); while(len>0){ s1[0]=s[len]; len--; return ricInverti(s,s1+1); } }
|
|
|
XBarboX (Member)
Guru
Messaggi: 945
Iscritto: 31/12/2008
|
Ma la ricorsione é obbligatoria? Con un ciclo for faresti tutto in un'attimo...
|
|
disperate (Normal User)
Newbie
Messaggi: 8
Iscritto: 02/04/2010
|
purtroppo si è una traccia che il mio prof ha assegnato e che devo consegnare
|
|
Matthew (Member)
Expert
Messaggi: 387
Iscritto: 29/01/2007
|
Non è certo il modo più semplice per invertire una stringa, comunque eccoti il codice:
Codice sorgente - presumibilmente C++ |
#include <iostream> #include <cstring> using namespace std; int recInvert(char s[], char s1[]) { s1[strlen(s)-1]=s[0]; if(strlen(s)>1)recInvert(s+1, s1); return 0; } int main() { char str[50]; char out[50]; strcpy(str, "this is a test"); recInvert(str, out); cout<<out<<endl; return 0; }
|
|
|
disperate (Normal User)
Newbie
Messaggi: 8
Iscritto: 02/04/2010
|
grazie matthew mi hai salvata^^ ma potresti spiegarmi l'utilità di questa ricorsione MMM io ho sentito dire k serve per qnd farò gli alberi...
|
|
disperate (Normal User)
Newbie
Messaggi: 8
Iscritto: 02/04/2010
|
ho modificato un poketto il codice xò mi da dei segni strani allego codice e stamp dell eseguibile
Codice sorgente - presumibilmente C++ |
#include <iostream> #include <cstring> using namespace std; int recInvert(char [], char []); #define MAX 20 int main() { char s[MAX]; char s1[MAX]; int n; cout<<"Dammi la stringa da invertire: "; cin.getline(s,MAX); recInvert(s, s1); cout<<s1<<endl; system("pause"); return 0; } int recInvert(char s[], char s1[]) { s1[strlen(s)-1]=s[0]; if(strlen(s)>1)recInvert(s+1, s1); return 0; }
|
Ultima modifica effettuata da disperate il 03/04/2010 alle 13:04 |
|
disperate (Normal User)
Newbie
Messaggi: 8
Iscritto: 02/04/2010
|
qualcuno a qualke idea??
|
|