Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Convertire data da stringa estraendo i valori interi
Forum - C/C++ - Convertire data da stringa estraendo i valori interi

Avatar
maaaaaat12 (Normal User)
Newbie


Messaggi: 2
Iscritto: 08/02/2019

Segnala al moderatore
Postato alle 0:28
Sabato, 09/02/2019
Salve a tutti! Ho il seguente problema: mi viene fornita una data tramite linea di comando (acquisisco quindi una stringa) nel formato gg/mm/aaaa e devo estrarne in tre variabili intere (giorno, mese e anno) i corrispondenti valori, come faccio?
Grazie in anticipo.

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5739
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 7:56
Sabato, 09/02/2019
Usa la funzione sscanf

Ultima modifica effettuata da nessuno il 09/02/2019 alle 7:57


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilità) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
AldoBaldo (Member)
Expert


Messaggi: 402
Iscritto: 08/01/2015

Segnala al moderatore
Postato alle 13:36
Sabato, 09/02/2019
Io in un caso del genere ho usato strtol().


Ma cosa vuoi che ne sappia? Io ci gioco, col codice, mica ci lavoro!
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5739
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 14:53
Sabato, 09/02/2019
Con la strtol ti servono 3 chiamate a funzioni, la sscanf fa tutto in una volta


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilità) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
AldoBaldo (Member)
Expert


Messaggi: 402
Iscritto: 08/01/2015

Segnala al moderatore
Postato alle 19:02
Sabato, 09/02/2019
Vero, però PER QUEL POCO CHE SO FARE IO, con strtol (anzi, meglio ancora con strtoul, ché giorni, mesi e anni negativi non hanno un gran senso) riesco ad avere più controllo sulla verifica di eventuali "storture" del formato, anche se al prezzo di un po' di righe di codice in più e, presumibilmente, di un minimo di lavorìo in più per il computer.


Ma cosa vuoi che ne sappia? Io ci gioco, col codice, mica ci lavoro!
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5739
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 19:57
Sabato, 09/02/2019
Perché affermi di avere più controllo?


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilità) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
AldoBaldo (Member)
Expert


Messaggi: 402
Iscritto: 08/01/2015

Segnala al moderatore
Postato alle 21:45
Sabato, 09/02/2019
Ribadendo quel "per quel poco che so fare io", nella mia soluzione uso il primo parametro per individuare il punto nel quale voglio che cominci ogni conversione e il secondo parametro per trovare quello dove finisce, quindi posso fare un controllo puntuale di tutto quello che ci sta "intorno", carattere per carattere. Non sono capace di replicare un comportamento simile con sscanf().


Ma cosa vuoi che ne sappia? Io ci gioco, col codice, mica ci lavoro!
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5739
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 22:49
Sabato, 09/02/2019
Non devi fare nulla, fa tutto la sscanf.


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilità) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote