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:
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++;
}
}
ma non funziona,allora ho visto la soluzione dell'esercizio ed è questa:
SOLUZIONE
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++;
}
}
Ma non ho capito dove sbaglio io e perchè nella soluzione giusta ci sta quell'i-- : che necessità c'è di tornare indietro???