For the C, we had the famous atoi() function, but for C++, how can I convert a std::string into an int?

That’s a great question, and the answer is easy, with the std::stringstream type element.

In this tutorial, we will see how to convert a std::string into an int and how to convert an int to a std::string.

Let’s start by converting a string into a number (an int):

1. Converting a std::string into an int

So, let’s take an example of this conversion:

#include <sstream>
#include <string>
#include <iostream>

int main (void) {
  std::string myString = "100";
  int result;
  std::stringstream convertThis(myString);
  if (!(convertThis >> result))
    result = 0;
  result += 5;
  std::cout << "Result = " << result << std::endl;
}

The result will be:

$ Result = 105

Indeed, I once the result is converted in an int, we can use it as it.

In our case, we use it to add 5 to the original int.

2. Converting an int into a std::string

So, let’s take an example of this conversion:

#include <sstream>
#include <string>
#include <iostream>

int main (void) {
  int myNumber = 250;
  std::string myString;
  std::stringstream convertThis;
  convertThis << myNumber;
  myString = convertThis.str();
  std::string newString = "I saw ";
  newString += myString;
  newString += " birds in the sky!";
  std::cout << newString << std::endl;
}

The result will be:

$ I saw 250 birds in the sky!

Indeed, I once the result is converted into a std::string, we can use it as it.

In our case, we use it to add “250” to the original std::string.