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++
// 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;> }> |
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> |
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).
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)