Skaitļa konvertēšana par virkni programmā C++
Programmā C++ veselu skaitļu pārvēršana virknēs vai skaitļu pārvēršana virknēs vai otrādi patiesībā pati par sevi ir liela paradigmas maiņa. Kopumā vai konkrētāk konkurētspējīgā programmēšanā ir daudz gadījumu, kad mums ir jāpārvērš skaitlis par virkni vai virkne par skaitli. Apskatīsim dažas metodes, kā pārvērst veselu skaitli vai skaitli virknē.
Skaitļa konvertēšana par virkni programmā C++
Tur ir 4 galvenās metodes skaitļa pārvēršanai virknē , kas ir šādi:
- Izmantojot to_string() Izmantojot virkni Stream Izmantojot funkciju sprintf() Izmantojot boost lexical cast
1. metode: izmantojiet to_string()
The to_string() funkciju var izmantot, lai pārvērstu veselu skaitli, peldošā komata vērtības vai jebkuru skaitli virknē. Šī funkcija pieņem skaitli (kas var būt jebkura veida datu) un atgriež skaitli kā vēlamo virkni.
Sintakse :
string to_string (int val );
Parametri:
- val - Jebkura skaitliska vērtība.
Atgriešanas vērtība:
- Virknes objekts, kas satur vērtības attēlojumu kā rakstzīmju secību.
Piemērs :
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;> }> |
Izvade
The integer in string is : 20 The float in string is : 30.500000
Laika sarežģītība: O(n)
Palīgtelpa: O(n)
2. metode: virkņu straumju izmantošana
Šajā metodē virknes straume deklarē straumes objektu, kas vispirms ievieto skaitli kā straumi objektā un pēc tam izmanto str() lai sekotu skaitļa iekšējai pārvēršanai virknē.
Piemērs:
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;> }> |
Izvade
The newly formed string from number is : 2016
Laika sarežģītība: O(n)
Palīgtelpa: O(n)
3. metode: funkcijas sprintf() izmantošana
sprintf() funkcija saglabā izvadi funkcijā norādītajā rakstzīmju buferī, nevis drukā izvadi konsolē.
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> |
Izvade
the string is : 12234
Laika sarežģītība: O(n)
Palīgtelpa: O(n)
4. metode: pastiprināšanas leksikas izmantošana
Līdzīgi kā virknes konvertēšanai, funkcija lexical_cast() paliek nemainīga, taču palielināt leksisko cast ' laika argumentu saraksts mainās uz lexical_cast(numeric_var).
Piemērs:
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;> }> |
Izvade
The float value in string is : 10.5 The int value in string is : 17
Laika sarežģītība : O(n)
Palīgtelpa : O(n)