scusa ascatem
mi rendo conto che quello di prima era un po' criptico e se non hai fatto i puntatori non puoi capirci niente
Te ne posto uno nuovo che non fa uso dei puntatori e te lo commento per bene
codice:
#include <stdio.h>
void sposta(char * s);
int main() {
char stringa[100];
int i;
printf("\nInserisci la stringa:\n");
fgets(stringa, 99, stdin);
// sostituisco i tab con degli spazi "normali"
for(i=0; stringa[i]!=0; i++)
if (stringa[i]=='\t') stringa[i]=' ';
for (i=0; stringa[i]!=0;) {
// se trovo sue spazi consecutivi...
if (stringa[i]==' ' && stringa[i+1]==' ')
// ...chiamo la sposta() passandole l'indirizzo
// del carattere corrente (cioè il primo dei
// due spazi consecutivi)
sposta(&stringa[i]);
// Manteniamo comunque la posizione a questo punto
// della stringa senza avanzare perché dobbiamo
// prima vedere se, dopo aver fatto scalare i caratteri,
// c'è ancora un altro spazio.
// Se invece non abbiamo incontrato spazi, possiamo andare
// avanti e processare il resto della stringa
else i++;
}
printf("\nStringa risultante:\n");
printf(stringa);
getch();
}
// In pratica, fa scalare i caratteri della parte rimanente della stringa,
// sovrascrivendo al primo spazio il secondo (ne taglia così uno),
// poi sovrascrive al secondo spazio il carattere successivo e così via
// fino a raggiungere la fine della stringa
void sposta(char *s) {
int i=0;
for( ; s[i]; i++) s[i] = s[i+1];
}
Forse è un po' difficile per chi è alle prime armi
cmq spero di essermi spiegato bene
Se vuoi chiarimenti chiedi pure
Ciao!!