|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Jan 2007
Messaggi: 75
|
[C] Come mai non incrementa questo contatore? Bohhh
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? Codice:
int i=0; tokenPtr = strtok(comando," "); while (tokenPtr != NULL) { sscanf(tokenPtr,"%s",&var); c[i]=var; i++; //printf("%d\n",i); tokenPtr = strtok (NULL, " "); } |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
|
Sicuro la stringa contenga spazi? Non entra nel ciclo, non vedo altra possibilità.
|
![]() |
![]() |
![]() |
#3 |
Member
Iscritto dal: Jan 2007
Messaggi: 75
|
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
![]() |
![]() |
![]() |
![]() |
#4 |
Member
Iscritto dal: Jan 2007
Messaggi: 75
|
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
|
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
|
Nella sscanf var che tipo è? Stringa? Perchè con la &? L'array c di che tipo è?
|
![]() |
![]() |
![]() |
#6 |
Member
Iscritto dal: Jan 2007
Messaggi: 75
|
Ecco le dichiarazioni
char *tokenPtr; char c[10]; char var; |
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
|
Se var è un carattere perchè %s nella sscanf? Prova con %c.
|
![]() |
![]() |
![]() |
#8 |
Member
Iscritto dal: Jan 2007
Messaggi: 75
|
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? |
![]() |
![]() |
![]() |
#9 | |
Senior Member
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
|
Quote:
Comunque tutto è bene quel che finisce bene, posso andare a letto contento ![]() |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 19:49.