Ci sono diversi errori: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:
quando vado ad eseguirlo,non ottengo il risultato che mi aspettavo...suggerimenti??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); }![]()
int main()codice:main()
Se vuoi una stringa perché hai dichiarato un array di int?codice:int stringa[100];
Usa char...
gets è un buco di sicurezza, usa fgets()codice:gets(stringa);
Questo ciclo non verrà mai eseguito: stai assegnando 0 alla variabile n. E zero significa "falso".codice:while(n=0)
Forse volevi scrivere n == 0?
Per quello che devi fare tu però è consigliato un ciclo for.
No. La sintassi è if (condizione1 && condizione2). Il carattere '' non mi pare esista. E non controlli un eventuale index of out bounds.codice:if (stringa[i] == ' ' ,stringa[i+1] == ' ')
L'assegnazione si fa con un uguale solo.codice:stringa[i+1]=='\b';