logo

Convertirea numărului în șir în C++

În C++, conversia numerelor întregi în șiruri de caractere sau conversia numerelor în șiruri de caractere sau invers este de fapt o mare schimbare de paradigmă în sine. În general sau mai specific în programarea competitivă, există multe cazuri în care trebuie să convertim un număr într-un șir sau șir într-un număr. Să ne uităm la câteva metode de a converti un întreg sau un număr într-un șir.

Convertirea numărului în șir în C++

Sunt 4 metode majore de a converti un număr într-un șir , care sunt după cum urmează:

    Folosind to_string() Folosind string Stream Folosind funcția sprintf() Folosind boost lexical cast

Metoda 1: Folosind to_string()

The to_string() funcția poate fi utilizată pentru a converti un număr întreg, valori în virgulă mobilă sau orice număr într-un șir. Această funcție acceptă un număr (care poate fi orice tip de date) și returnează numărul ca șirul dorit.



Sintaxă :

string  to_string (int val );>

Parametri:

  • val – Orice valoare numerică.

Valoare returnată:

  • Un obiect șir care conține reprezentarea valorii ca o secvență de caractere.

Exemplu :

C++


eol în piton



// 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;> }>

>

centos vs rhel
>

Ieșire

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

Complexitatea timpului: Pe)
Spațiu auxiliar: Pe)

Metoda 2: Utilizarea fluxurilor de șiruri

În această metodă, un flux șir de caractere declară un obiect flux care mai întâi inserează un număr, ca flux într-un obiect și apoi utilizează str() pentru a urmări conversia internă a unui număr într-un șir.

Exemplu:

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;> }>

>

>

Ieșire

The newly formed string from number is : 2016>

Complexitatea timpului: Pe)
Spațiu auxiliar: Pe)

Metoda 3: Folosind funcția sprintf().

sprintf() funcția stochează ieșirea în bufferul de caractere specificat în funcție, în loc să imprime rezultatul pe consolă.

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>

>

format șir

>

Ieșire

the string is : 12234>

Complexitatea timpului: Pe)
Spațiu auxiliar: Pe)

Metoda 4: Folosind boost lexical cast

Similar cu conversia șirurilor, funcția lexical_cast() rămâne aceeași, dar în „ spori distribuția lexicală Lista de argumente de timp se modifică în lexical_cast(numeric_var).

cum să știi dacă cineva te-a blocat pe Android

Exemplu:

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;> }>

>

>

Ieșire

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

Complexitatea timpului : Pe)
Spațiu auxiliar : Pe)