Numeron muuntaminen merkkijonoksi C++:ssa

C++:ssa kokonaislukujen muuntaminen merkkijonoiksi tai lukujen muuntaminen merkkijonoiksi tai päinvastoin on itse asiassa suuri paradigman muutos. Yleisesti tai tarkemmin sanottuna kilpailevassa ohjelmoinnissa on monia tapauksia, joissa meidän on muutettava numero merkkijonoksi tai merkkijono numeroksi. Katsotaanpa joitain menetelmiä kokonaisluvun tai luvun muuntamiseksi merkkijonoksi.

Numeron muuntaminen merkkijonoksi C++:ssa

On 4 tärkeintä tapaa muuntaa luku merkkijonoksi , jotka ovat seuraavat:

    To_string():n käyttäminen merkkijonovirran käyttäminen sprintf()-funktion käyttäminen Boost-leksikaalisen heiton käyttäminen

Tapa 1: Käytä to_string()

The to_string() -funktiota voidaan käyttää kokonaisluvun, liukulukuarvojen tai minkä tahansa luvun muuntamiseen merkkijonoksi. Tämä funktio hyväksyy luvun (joka voi olla mikä tahansa tietotyyppi) ja palauttaa numeron haluttuna merkkijonona.

Syntaksi :

string  to_string (int val ); 

Parametrit:

  • val – Mikä tahansa numeerinen arvo.

Palautusarvo:

  • Merkkijonoobjekti, joka sisältää arvon esityksen merkkijonona.

Esimerkki :

C++




// C++ code to demonstrate 'to_string()' method> // to convert number to string.> #include> #include // for string and to_string()> using> namespace> std;> // Driver Code> int> main()> {> > // Declaring integer> > int> i_val = 20;> > // Declaring float> > float> f_val = 30.50;> > // Conversion of int into string using> > // to_string()> > string stri = to_string(i_val);> > // Conversion of float into string using> > // to_string()> > string strf = to_string(f_val);> > // Displaying the converted strings> > cout < <> 'The integer in string is : '> ;> > cout < < stri < < endl;> > cout < <> 'The float in string is : '> ;> > cout < < strf < < endl;> > return> 0;> }>

Lähtö

The integer in string is : 20 The float in string is : 30.500000 

Aika monimutkaisuus: Päällä)
Aputila: Päällä)

Tapa 2: Merkkijonovirtojen käyttäminen

Tässä menetelmässä merkkijonovirta ilmoittaa virtaobjektin, joka ensin lisää luvun, virtana objektiin ja käyttää sitten str() seurata luvun sisäistä muuntamista merkkijonoksi.

Esimerkki:

C++




// C++ code to demonstrate string stream method> // to convert number to string.> #include> #include // for string streams> #include // for string> using> namespace> std;> int> main()> {> > int> num = 2016;> > // declaring output string stream> > ostringstream str1;> > // Sending a number as a stream into output> > // string> > str1 < < num;> > // the str() converts number into string> > string geek = str1.str();> > // Displaying the string> > cout < <> 'The newly formed string from number is : '> ;> > cout < < geek < < endl;> > return> 0;> }>

Lähtö

The newly formed string from number is : 2016 

Aika monimutkaisuus: Päällä)
Aputila: Päällä)

Tapa 3: Käytä sprintf()-funktiota

sprintf() toiminto tallentaa lähdön funktiossa määritettyyn merkkipuskuriin sen sijaan, että tulostettaisiin tulostettavaksi konsoliin.

C++




// C++ Program to illustrate the use of sprintf() for number> // to string conversion> #include> using> namespace> std;> int> main()> {> > // any num> > int> n = 12234;> > // string buffer> > char> str[1000];> > // sprintf() to print num to str buffer> > sprintf> (str,> '%d'> , n);> > cout < <> 'the string is : '> < < str;> > return> 0;> }> // this code is contributed by shivanisingh>

Lähtö

the string is : 12234 

Aika monimutkaisuus: Päällä)
Aputila: Päällä)

Tapa 4: Boost-leksikaalisen heiton käyttäminen

Kuten merkkijonon muunnos, lexical_cast()-funktio pysyy samana, mutta tehosta leksikaalista näyttelijää ' aika-argumenttiluettelo muuttuu muotoon lexical_cast(numeric_var).

Esimerkki:

C++




// C++ code to demonstrate 'lexical_cast()' method> // to convert number to string.> #include // for lexical_cast()> #include> #include // for string> using> namespace> std;> // Driver Code> int> main()> {> > // Declaring float> > float> f_val = 10.5;> > // Declaring int> > int> i_val = 17;> > // lexical_cast() converts a float into string> > string strf = boost::lexical_cast(f_val);> > // lexical_cast() converts a int into string> > string stri = boost::lexical_cast(i_val);> > // Displaying string converted numbers> > cout < <> 'The float value in string is : '> ;> > cout < < strf < < endl;> > cout < <> 'The int value in string is : '> ;> > cout < < stri < < endl;> > return> 0;> }>

Lähtö

The float value in string is : 10.5 The int value in string is : 17 

Aika monimutkaisuus : Päällä)
Aputila : Päällä)