Open In App

Converting Number to String in C++

Improve
Improve
Improve
Like Article
Like
Save Article
Save
Share
Report issue
Report

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;
}


Output

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;
}


Output

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


Output

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;
}


Output

The float value in string is : 10.5
The int value in string is : 17

Time Complexity: O(n)
Auxiliary Space: O(n)

 



Last Updated : 18 May, 2023
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads