Allora: devo realizzare questo sottoprogramma:
eliminaSpazi(): elimina gli spazi ripetuti consecutivi in una stringa
Esempio:_
Nel mezzo del cammin di nostra vita
Risultato:
Nel mezzo del cammin di nostra vita
Ho provato a farlo cosi:
ma non funziona,allora ho visto la soluzione dell'esercizio ed è questa:codice:void eliminaSpazi (char *v) { int i=0,j; while (v[i]!='\0') { while ((v[i]==' ') && (v[i+1]=v[i])) { j=i+1; while (v[j]!='\0') { v[j]=v[j+1]; j++; } } i++; } }
SOLUZIONE
Ma non ho capito dove sbaglio io e perchè nella soluzione giusta ci sta quell'i-- : che necessità c'è di tornare indietro???codice:void eliminaSpazi2(char* p) { int i=0,j; while(p[i]!='\0') { if((p[i]==' ')&&(p[i+1]==p[i])) { j=i+1; while(p[j]!='\0') { p[j]=p[j+1]; j++; } i--; } i++; } }

Rispondi quotando