In C++, converting integers to strings or converting numbers to strings or vice-versa is actually a big paradigm shift in itself. In general or more specifically in competitive programming there are many instances where we need to convert a number to a string or string to a number. Let’s look at some methods to convert an integer or a number to a string.
Converting Number to String in C++
There are 4 major methods to convert a number to a string, which are as follows:
- Using to_string()
- Using string Stream
- Using sprintf() function
- Using boost lexical cast
Method 1: Using to_string()
The to_string() function can be used to convert an integer, floating point values, or any number to a string. This function accepts a number(which can be any data type) and returns the number as the desired string.
Syntax:
string to_string (int val);
Parameters:
- val – Any Numerical Value.
Return Value:
- A string object containing the representation of value as a sequence of characters.
Example:
// C++ code to demonstrate "to_string()" method // to convert number to string. #include <iostream> #include <string> // 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;
} |
The integer in string is : 20 The float in string is : 30.500000
Time Complexity: O(n)
Auxiliary Space: O(n)
Method 2: Using string streams
In this method, a string stream declares a stream object which first inserts a number, as a stream into an object and then uses “str()” to follow the internal conversion of a number to a string.
Example:
// C++ code to demonstrate string stream method // to convert number to string. #include<iostream> #include <sstream> // for string streams #include <string> // 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;
} |
The newly formed string from number is : 2016
Time Complexity: O(n)
Auxiliary Space: O(n)
Method 3: Using the sprintf() function
sprintf() function stores the output on the char buffer specified in the function, instead of printing the output on the console.
// C++ Program to illustrate the use of sprintf() for number // to string conversion #include <iostream> 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 |
the string is : 12234
Time Complexity: O(n)
Auxiliary Space: O(n)
Method 4: Using boost lexical cast
Similar to string conversion, the ” lexical_cast() ” function remains the same, but in the ‘boost lexical cast‘ time argument list modifies to “lexical_cast(numeric_var).
Example:
// C++ code to demonstrate "lexical_cast()" method // to convert number to string. #include <boost/lexical_cast.hpp> // for lexical_cast() #include <iostream> #include <string> // 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<string>(f_val);
// lexical_cast() converts a int into string
string stri = boost::lexical_cast<string>(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;
} |
The float value in string is : 10.5 The int value in string is : 17
Time Complexity: O(n)
Auxiliary Space: O(n)