/* ---------------------------------------------------------------------------- int2str.cpp Tarkoitus: Yleiskäyttöinen funktio, joka muuttaa kokonaisluvun merkkijonoksi. Pvm: 2.7.2002 Tekijä: Miika Nurminen ---------------------------------------------------------------------------- */ #include #include /* c-kielen muunnosfunktio itoa*/ #include using namespace std; // tarvitaan string-luokkaa käytettäessä. // vakioreferenssin välitys on nopeampaa kuin koko merkkijonon kopiointi int str2int(const string& s) { int result=0; // paluuarvo on oletuksena 0 sscanf(s.c_str(),"%d",&result); // luetaan luku result-muuttujaan return result; } /* str2int referenssiä käyttäen. virhetilanteessa muuttujaan jää sen alkuperäinen arvo */ void str2int(const string& s, int& i) { sscanf(s.c_str(),"%d",&i); } // muuntaa kokonaisluvun string-merkkijonoksi string int2str(int i) { char c[34]=""; // luodaan tilapäinen c-merkkijono // muunnosfunktion kutsumista varten itoa(i,c,10); // muunnetaan 10-järjestelmässä return string(c); } // muunnosfunktio referenssiä käyttäen void int2str(int i,string& s) { char c[34]=""; itoa(i,c,10); s=c; // sijoitetaan muunnettu c-merkkijono } // testipääohjelma int main() { int i = 10; string s = int2str(i); cout << s << endl; i=-3002; cout << int2str(i) << endl; // funktion kutsu onnistuu tulostuslauseen sisällä i=0; int2str(i,s); // kutsu referenssillä cout << s << endl; return 0; }