I C++ er det faktisk et stort paradigmeskifte i seg selv å konvertere heltall til strenger eller konvertere tall til strenger eller omvendt. Generelt eller mer spesifikt i konkurrerende programmering er det mange tilfeller der vi trenger å konvertere et tall til en streng eller streng til et tall. La oss se på noen metoder for å konvertere et heltall eller et tall til en streng.
én million i tall
Konverter tall til streng i C++
Det er 4 hovedmetoder for å konvertere et tall til en streng , som er som følger:
- Bruke to_string() Bruke streng Stream Bruke sprintf()-funksjonen Bruke boost leksikalsk cast
Metode 1: Bruk to_string()
De to_string() funksjonen kan brukes til å konvertere et heltall, flyttallsverdier eller et hvilket som helst tall til en streng. Denne funksjonen godtar et tall (som kan være en hvilken som helst datatype) og returnerer nummeret som ønsket streng.
Syntaks :
string to_string (int val );>
Parametere:
- val – Enhver numerisk verdi.
Returverdi:
- Et strengobjekt som inneholder representasjonen av verdi som en sekvens av tegn.
Eksempel :
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;> }> |
>
>Produksjon
The integer in string is : 20 The float in string is : 30.500000>
Tidskompleksitet: På)
Hjelpeplass: På)
Metode 2: Bruke strengstrømmer
I denne metoden erklærer en strengstrøm et strømobjekt som først setter inn et tall, som en strøm inn i et objekt og deretter bruker str() å følge den interne konverteringen av et tall til en streng.
Eksempel:
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;> }> |
>
>Produksjon
The newly formed string from number is : 2016>
Tidskompleksitet: På)
Hjelpeplass: På)
Metode 3: Bruke sprintf()-funksjonen
sprintf() funksjonen lagrer utdataene på tegnbufferen som er spesifisert i funksjonen, i stedet for å skrive ut utdataene på konsollen.
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> |
>
>Produksjon
the string is : 12234>
Tidskompleksitet: På)
Hjelpeplass: På)
Metode 4: Bruke boost leksikalsk rollebesetning
I likhet med strengkonvertering forblir funksjonen lexical_cast() den samme, men i ' øke leksikalsk rollebesetning ' tidsargumentliste endres til lexical_cast(numeric_var).
Eksempel:
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;> }> |
>
>Produksjon
The float value in string is : 10.5 The int value in string is : 17>
Tidskompleksitet : O(n)
Auxiliary Space : O(n)