Terve. Olisi pieni pascal-aiheinen ohjelma, miten voin muuttaa muuttujan x tyypin kokonaisluvusta merkkijonoksi, eli integeristä stringiksi. Miten se tehdään?
s := IntToStr(i);
Jaa no entäs miten toisin päin? Tuli tarve juuri tuollaiselle eräässä ohjelmassani... Komentorivillä annettava attribuutti pitäisi muuntaa numeroksi, esim.
C:\>laskeika Testi 1940 <ENTER> Terve Testi! Ikäsi on 65 vuotta! C:\>
Että tällaista!
Tässä toimiva:
var s: String; i, Err: Integer; begin Str(i,s); //Muuttaa Integer->String Val(s,i,Err); //Muuttaa String->Integer end;
Jos val procedurissa esintyy virheitä niin Err ilmoitta monennesko merkissä.
Sori. Unohdin mainita, että temppu pitäisi hoitaa C:llä.
En ole niin C:hen perehtynyt mutta muistelisin että funktio atoi muuttaa merkkijonon kokonailuvuksi ja itoa toisin päin.
atoi ja itoa kyllä toimii. Lisäksi merkkijonoista voi scannaille eri typpisiä muuttujia sscanf-funktiolla normaalin scanf:n tapaan.
Tuo zacuran ehdotus ei ainakaan toiminut.. Eikös CRT-moduulin pitäisi riittää tuon käyttöön?
Luulen että tähän tyyliin pitäisi toimia
headeri: <stdlib.h>
itoan käyttö:
int luku = 15; char str_luku[3]; _itoa(luku, str_luku,10); MessageBox(NULL,(LPCTSTR)str_luku,"Esimerkki",MB_OK); // jos käytät win32 apia
ja atoi:
char rivi[7]; // sitten riviin jotain tavaraa int luku=atoi(rivi);
Submin kirjoitti:
Tuo zacuran ehdotus ei ainakaan toiminut.. Eikös CRT-moduulin pitäisi riittää tuon käyttöön?
Tuo ensimmäinen ei ilmeisesti toimi kun delphillä mutta tuo toinen vastaus toimi ainakin Turbo Pascal 7.0:ssa
itoa()
ja
atoi()
ovat erittäin käteviä! Kiitos vain neuvoista!
Aihe on jo aika vanha, joten et voi enää vastata siihen.