Converting Number to String in C++
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++
// 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++
// 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++
// 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++
// 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)
Contact Us