Ciao ragazzi, scusate se continuo a disturbarvi, avrei bisogno di un vostro parere;
Sto cercando di creare un programma che restituisca in uscita il medesimo testo che rieceve in entrata con la differenza di sostituire piu' spazi bianchi consecutivi con un singolo spazio bianco.
Ovvero qualora io scrivessi "ciao mondo" in input, cio' che dovrebbe essere restituito in output dovrebbe essere "ciao mondo"
Il programma viene compilato, ma purtroppo non funziona come io vorrei:
[CODE]
#include <stdio.h>
void cut (char line[],int);
main()
{
int c,i,j;
[
char vett[100];
{
for (i=0;(c=getchar())!=EOF;i++,j++) //nel for ho inizializzato il vettore e l'ho riempito
vett [i]=c;
vett[i]='\0';
}
while (vett[i]!= '\0') // analizza il vettore finchË questo non finisce
{ i=j=0;
if ( vett [i]!= ' ') // se la prima cella del vettore Ë diversa dalo spazio incrementa le variabili e quindi ricominica il ciclo
{i++; j++;}
else if (vett[i]==' ') // se Ë uguale allo spazio incrementa l'altro puntatore
{
j++; // se la posizione successiva cui punta j Ë anch'essa uno spazio elimina quest spazio ramite la funzione cut del collega dell'altro giorno
if (vett [j]== ' ')
cut(vett,j);
j--; //decrementa j in modo che punti di nuovo laddove punta i;
} // il tutto si ripete finche il vett [i] non incontra il tappo
}
printf("%d", vett); // una volta incontrato il tappo, stampa il vettore
}
void cut(char line[],int i){
while(line[i]!='\0'){
line[i]=line[i+1];
i++;} }
[/ CODE]
Spero qualcuno mi possa aiutare.

Rispondi quotando