Originariamente inviato da shiichi
Salve a tutti...sto seguendo una guida per il linguaggio C e mi chiede di svolgere il seguente esercizio:
Scrivete un programma che copi il suo input sul suo output, sostituendo una stringa di uno o
più spazi con uno spazio singolo.

Sono arrivato a questo:
codice:
#include <stdio.h>
#include <string.h>

main()
{
	int stringa[100];
	gets(stringa);
	int i= 0;
	int n= 0;
	while(n=0)
	{
		if (stringa[i] == ' ' ,stringa[i+1] == '  ')
		{
			stringa[i+1]=='\b';
			n=1;
		}
		i++;
	}
	puts(stringa);
}
quando vado ad eseguirlo,non ottengo il risultato che mi aspettavo...suggerimenti??
Ci sono diversi errori:

codice:
 
main()
int main()

codice:
int stringa[100];
Se vuoi una stringa perché hai dichiarato un array di int?
Usa char...

codice:
gets(stringa);
gets è un buco di sicurezza, usa fgets()

codice:
while(n=0)
Questo ciclo non verrà mai eseguito: stai assegnando 0 alla variabile n. E zero significa "falso".
Forse volevi scrivere n == 0?
Per quello che devi fare tu però è consigliato un ciclo for.


codice:
if (stringa[i] == ' ' ,stringa[i+1] == '  ')
No. La sintassi è if (condizione1 && condizione2). Il carattere '' non mi pare esista. E non controlli un eventuale index of out bounds.

codice:
stringa[i+1]=='\b';
L'assegnazione si fa con un uguale solo.