prevod long na array

Preji hezky den.
Snazim se napsat nejakou funkci, ktera mi prevede cislo 12345678 do pole tak ze s[0]=1, s[1]=2 atp.
Zkousel jsem pouzit deleni ale nejak si s tim nevim rady.
12345678 / 1e7 = 1 to ziskam
12345678 / 1e6 = 12 tak jeste mezivysledek musim delit atd.
Nemuzete navest na nejakou vtipnejsi reseni? Zkousel jsem neco najit ale nic.
Dekuji.

To si chceš jenom procvičit psanív C?
Jinak na to je funkce ltoa v knihovně stdlib

Ne nechtel, ale protoze jsem si neprecetl hlavicku tak jsem nevedel ze takova funkce existuje.
Kdyz clovek da do googlu “long to array” tak mu to nevybehne…
Diky

Diky za pomoc, sice to funguje ale potreboval bych to trosku upravit tak, aby se cislo zarovnavalo doprava.

Napr. cislo 10 by melo byt tak ze je tam 6 nul, potom 1 a potom 0
Zkousel jsem pouzit funkci sprintf(buffer,"%8l",time); ale ackoliv pro integer funguje skvele tak pro long nefunguje.
Buffer je pole 8 charu.

Co je za problém v přerovnání pole? V poli máš ascii znaky a na konci je 0 (nezaměňovat s ‘0’). Zjisti, na kterym indexu je nula a všechny znaky patřičně posuň. Pak jen zepředu doplníš požadovaný nuly.

Zkus

sprintf(buffer,"%8ld",time);

Jo super, to je presne to co potrebuji. Funguje to…
Sice to ma docela cyklu na prevod ale ucel to plni…

Tak to obvykle bývá. Místo trochy přemejšlení zaplatíš fleškou, ramkou a trváním operace.
Konkrétně tady záleží na rozdílu mezi ltoa a sprintf (přerovnání pole by se mohlo vejít do 50 taktů).

No nevim, jestli to zkusim, jak se rika, co funguje, do toho uz nehrab…