Originariamente inviato da forzagaeta
invece di leggere i valori in questo modo
...
io vorrei prenderli singolarmente senza fare il while.
Sicuro di averne bisogno?
In ogni caso basta "srotolare" il ciclo while:
codice:
pch = strtok (str,"/");
printf ("%s\n",pch);
pch = strtok (NULL, "/");
printf ("%s\n",pch);
pch = strtok (NULL, "/");
printf ("%s\n",pch);
però fai attenzione perché in questo caso non fai alcun controllo su pch (che invece col ciclo while facevi in automatico nella sua condizione), quindi se per caso sbagliassi ad immettere la data, ad esempio nel formato g\m\a anziché g/m/a otterresti un errore run time in quanto una delle strtotk potrebbe restituire NULL come risultato e avresti il crash sulla printf() successiva. Altrimenti dovresti metterci dei controlli if tra le varie strtotk() ma questo renderebbe il tutto poco bello da vedersi, quindi per questo chiediti se ne hai davvero bisogno.
In ogni caso, se hai la certezza che ogni data sarà sempre nel formato g/m/a, allora non avrai bisogno di alcun controllo, o al massimo potresti farne uno solo prima di ricorrere alla strtotk() appunto per verificare se la data sia stata inserita nel formato corretto: se non lo risultasse, gestiresti l'errore in qualche modo.