Diskuze: mktime() a scanf()

C++ C a C++ mktime() a scanf()

Avatar
Klavanek Honza:

Zdravím,

řeším následný problém
načítám slova pomocí scanf()
a testuji jej na: slovo --> palindrom, číslo --> prvočíslo, a datum u kterého mám zjistit zda má správný tvar a pokud ano o jaký den se jedná...

a mám tyhle omezení

všechna volání hlavičkového souboru string.h
volání z rodiny malloc a free
volání z rodiny fopen, fclose, fscanf, ...

prakticky po ten mktime() mi to funguje, napsal sem si šílenou detekci na to zda je na vstupu něco typu 2012-02-02, ovšem vůbec netuším jak to mám nacpat do mktime jako asi tuším že ten řetězec musím rozbít a říct mktime co je rok, měsíc a den pomocí nějakých dočasných proměnných ale nevím jak ho mám rozbít, zkopírovat ... tak abych měl např. rr=2012, mm=02, dd=02 . . .

byla by tu nějaká duše která by mě pošťouchla správným směrem pomocí nějakého příkladu nebo klidně odkazem ? (hlavně ať je to nějak po lopatě...s Cečkem sem si začal hrát ani dva měsíce...) Mé předešlé pokusy skončily buď pádem programu nebo tím že v dočasných proměnných byly nějaké hovadiny.

předem díky

 
Odpovědět 7.11.2015 22:29
Avatar
David Novák
Tým ITnetwork
Avatar
Odpovídá na Klavanek Honza
David Novák:

Další prvák na FITu :D

Mrkni do manuálu na mktime nebo sem:

http://www.tutorialspoint.com/…n_mktime.htm

http://www.cplusplus.com/…time/mktime/

mktime jsem osobně nikdy nepoužil, ale od pohledu tomu předhodíš struct tm - do které (jak říkáš) dáš den, měsíc a rok a ono ti to v té struktuře v tm_wday dá číslo dne 0-6.

Pokud by v té strukteře nebylo platné datum, tak to asi nějak vrátí -1.. Jelikože má to datum pevnou strukturu, tak ho prostě rozsekej, zkontroluj, jestli jde o číslice, převeď na číslo a ulož do nějaké tvé struct tm.

Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
Nahoru Odpovědět  +1 7.11.2015 23:17
Chyba je mezi klávesnicí a židlí.
Avatar
Odpovídá na David Novák
Klavanek Honza:

mrknu na to. jop byl jsem prozrazen :D sem z FITu :D

tvoje odpověď vyzní že bys použil něco jiného než mktime...
rozšíříš mi obzory?

 
Nahoru Odpovědět 8.11.2015 0:10
Avatar
Odpovídá na Klavanek Honza
Libor Šimo (libcosenior):

Ak nemate zakazane pouzit algoritmus s webu, je aj ine riesenie. Pred par dnami som to tu dal.

Nahoru Odpovědět 8.11.2015 0:43
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
Nahoru Odpovědět 8.11.2015 0:45
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
David Novák
Tým ITnetwork
Avatar
Odpovídá na Klavanek Honza
David Novák:

mktime bych určitě použil.. ;)

to, že jsem ho nepoužil je kvůli tomu, že jsem měl jiné zadání :D

Jinak na kód z webu bacha - docela hlídají plagiátorství..

Nahoru Odpovědět 8.11.2015 14:13
Chyba je mezi klávesnicí a židlí.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 6 zpráv z 6.