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???