|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Jul 2005
Messaggi: 45
|
[C] gestione stringhe
Ciao a tutti,avrei un problemino..
dovrei leggere da input una stringa del tipo elemento comando elemento e a seconda dei casi fare delle operazioni: mi spiego meglio : devo innanzitutto leggere la prima parte della stringa se questa è = ad un certo comando allora passa in uno switch a parte,altrimenti compie altre operazioni io avevo pensato ad una cosa del tipo while(s=getchar() != '\n'); stringa = read_name(s); comando = strtok(stringa, " "); if (strcmp(comando,var1) == 0) ENTRA IN UNO SWITCH la funzione read_name mi crea una stringa e mi restituisce un puntatore ad essa... ho pensato di usare strtok perchè avrei bisogno di suddividere la stringa in diverse parti perchè alcune parti rappresentano comandi e altre invece altro tipo di informazioni... qualche aiutino?grazie mille |
![]() |
![]() |
![]() |
#2 | |
Member
Iscritto dal: Jul 2005
Messaggi: 45
|
Quote:
se provo con while(isspace(s=getchar()) funziona nel senso che mi crea un set di caratteri fino a che non arriva allo spazio e poi riesco a gestirla...il problema è che io voglio prendere tuta la stringa intera argomenti dei comandi e comandi ARG COMANDO ARG e poi potermeli gestire comodamente in modo da poterci effettuare delle operazioni...dividerli in token sarebbe la sol migliore ma con quel pezzo di codice cosa fa arriva ad ARG e basta!io invece avrei bisogno di una funzione che mi prenda tutta la stringa e poi possa gestirla in token.....ah senza usare gets!!perchè mi è stato proibito...solo getchar e scanf |
|
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Per leggere la stringa ti consiglio fgets: http://www.cplusplus.com/reference/c...dio/fgets.html
Passa stdin come terzo parametro. fgets(buffer, dimensione_buffer, stdin); |
![]() |
![]() |
![]() |
#4 | |
Member
Iscritto dal: Jul 2005
Messaggi: 45
|
Quote:
![]() |
|
![]() |
![]() |
![]() |
#5 |
Member
Iscritto dal: Jul 2005
Messaggi: 45
|
OK credo che userò questa funzione read_string() in questo modo :
Codice PHP:
Codice PHP:
il problema è che ora però non mi stampa nulla!rimane sempre in attesa che inserisca input e in pratica non termina mai...dove sbaglio? |
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Scusa, ma allora simula la fgets con getchar...
|
![]() |
![]() |
![]() |
#7 |
Member
Iscritto dal: Jul 2005
Messaggi: 45
|
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 00:43.