When using C++ to solve problems, it is often necessary to process the input. In many cases, it is necessary to convert strings into numbers, or numbers into strings. How to deal with this?
Such conversion is very easy after C++11.
1. String to number (string to int)
1. 1 stoi (after C++11)
usage:
#include <iostream> #include <string> int main() { std::string str = "123"; int num; // using stoi() to store the value of str1 to x num = std::stoi(str); std::cout << num; return 0; } ```
1.2 atoi, before C++11 or for c-style strings
usage:
#include <iostream> // cstdlib is needed for atoi() #include <cstdlib> using namespace std; int main() { // declaring and initializing character array char str[] = "456"; int num = std::atoi(str); std::cout << "num = " << num; return 0; } ```
for std::string str
atoi( str.c_str() )
1.3 Using stringstream
usage:
#include <iostream>
#include <string>
#include <sstream> // this will allow you to use stringstream in your program
using namespace std;
int main() {
//create a stringstream object, to input/output strings
stringstream ss;
// a variable named str, that is of string data type
string str = "7";
// a variable named num, that is of int data type
int num;
//extract the string from the str variable (input the string in the stream)
ss << str;
// place the converted value to the int variable
ss >> num;
//print to the consloe
cout << num << endl; // prints the intiger value 7
}
It is recommended to use the first one, which is simple and easy to understand
2. Convert numbers to strings (int to string)
2.1 to_string()
#include <iostream> #include <string> using namespace std; int main() { int num = 123; std::string str = to_string(num); std::cout << str; return 0; } ```
2.2 stringstream
#include <iostream> #include<string> #include<sstream> // for using stringstream using namespace std; int main() { int num = 15; // creating stringstream object ss std::stringstream ss; // assigning the value of num to ss ss << num; // initializing string variable with the value of ss // and converting it to string format with str() function std::string strNum = ss.str(); std::cout << strNum; return 0; } ```
2.3 itoa (convert to c-style string first)
int a = 10;
char *intStr = itoa(a);
string str = string(intStr);
3. Reference materials:
https://www.freecodecamp.org/news/string-to-int-in-c-how-to-convert-a-string-to-an-integer-example/
https://www.programiz.com/cpp-programming/string-int-conversion
https://stackoverflow.com/questions/5590381/easiest-way-to-convert-int-to-string-in-c