View Full Version : [C] Come mai non incrementa questo contatore? Bohhh
InsomNia_Italy
10-01-2010, 21:20
Ciao a tutti,
allora, ho una stringa (comando) composta da una serie di caratteri separati da uno spazio. Voglio spezzarla con il delimitatore " " (spazio) e salvare all'interno dell'array (c) i vari token. Tutto dovrebbe funzionare ma non riesco a capire perchè il contatore I non incrementa ad ogni loop del ciclo.....vale sempre lo stesso. Cosa sbaglio?
int i=0;
tokenPtr = strtok(comando," ");
while (tokenPtr != NULL)
{
sscanf(tokenPtr,"%s",&var);
c[i]=var;
i++;
//printf("%d\n",i);
tokenPtr = strtok (NULL, " ");
}
Grazie mille =)
Sicuro la stringa contenga spazi? Non entra nel ciclo, non vedo altra possibilità.
InsomNia_Italy
10-01-2010, 22:23
Si la stringa contiene spazi e nel ciclo entro perchè mettendo al suo interno un qualsiasi printf lo visualizza senza problemi...l'unica cosa è che quel dannato contatore non incrementa. Non riesco a capire perchè, eppure è un ciclo che non ha niente di chissà quanto complesso :D
InsomNia_Italy
10-01-2010, 22:24
E aggiungo, che se all'interno del while inserisco un printf di tokenPtr visualizza ad ogni ciclo il token corretto. I però non incrementa e quindi VAR finisce sempre nella posizione 0 dell'array C....boh
Nella sscanf var che tipo è? Stringa? Perchè con la &? L'array c di che tipo è?
InsomNia_Italy
10-01-2010, 23:02
Ecco le dichiarazioni
char *tokenPtr;
char c[10];
char var;
Se var è un carattere perchè %s nella sscanf? Prova con %c.
InsomNia_Italy
10-01-2010, 23:15
ma porc.....come ho fatto a non notarlo prima non lo so...
Grazie, ora funziona tutto. Comunque non ho mica capito perchè I non aumentava a causa di questo disguido....dov'è il nesso tra le due cose?
ma porc.....come ho fatto a non notarlo prima non lo so...
Grazie, ora funziona tutto. Comunque non ho mica capito perchè I non aumentava a causa di questo disguido....dov'è il nesso tra le due cose?
Ah, non dirlo a me XD Anche perchè non conosco bene il C, a dire il vero nessun linguaggio, quindi aspetta passi qualcuno più esperto.
Comunque tutto è bene quel che finisce bene, posso andare a letto contento :p
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.