Converting string into integer in C++
When programming in C++, we'll frequently need to change one data type to another.
When we use C++ to create apps, we must transform data from one type to another. When we convert existing data to a new type, we should ensure that no data is lost. This is particularly the case when converting data from strings to integers and vice versa.
C++ Datatypes :
There are a few built-in data types in the C++ programming language:
int - integer (whole) numbers (int) (for example 6, 90)
double - For floating point numbers, use double (for example 7.0, 3.4)
char - It is used for single characters (such as ‘S’ and '!')
string - string is a character sequence (for example "Hey")
bool - For boolean values, use bool (either true or false)
C++ is a highly typed programming language, which means you must state explicitly what kind of value will be stored in a variable when you create it.
Declaring and initializing int in C++ :
To create an int variable in C++, you must first write the variable's data type, which is in this instance int. This tells the compiler what kinds of values the variable can hold and hence what actions it can do. We then give it a name and then assign a value to it.
Syntax:
#include <iostream>
int main() {
int date;
date = 24;
}
Declaring and initializing string in C++:
Declaring and initialising strings in C++ is quite similar to declaring and initialising int, as you saw in the previous section.
A string class is included in the C++ standard library. After #include <iostream>, you must include the <string> header library at the start of your program to utilise the string data type. You may also use the namespace std; that you saw before after adding that header file. You won't have to use std::string when establishing a string variable after adding this line since string will suffice.
Syntax :
#include <iostream>
#include <string>
using namespace std;
int main() {
string greet;
greet = "Hey";
}
Conversion of string to int in C++ :
Since C++ is a highly typed language, the data type definition of the variable is required. For programming purposes, it is sometimes necessary to convert the datatype of a variable through one type to another, such as string into int or int to string. This sort of conversion may be accomplished in C++ utilising several built-in functions. The following examples demonstrate how to convert a string to an int in C++.
The various techniques in the C++ that are used to transform string data into int are :
- atoi() function
- stoi() function
- stringstream class
- sscanf() function
- for loop
Conversion of string to int in C++ using atoi() function :
The atoi() method converts a string formed by one char array to something like an integer and returns a number. To use this function, you must include the cstdlib header file.
Syntax :
int atoi(const chars *strng)
Example :
//Included for printing the output of the program
#include <iostream>
//Included for using the atoi() function in the program
#include <cstdlib>
//Included for using the strcpy function in the program
#include <cstring>
intmain() {
//Declaring the string variables
std::string stData;
//Declaring the chracter array variables
charstarr[60];
//Taking any number from the user
std::cout<”Enter any number : ”>stData;
//Converting the given string to a charcater array
stcpy(starr, stData.c_str());
//Converting the character array to an integer data type
int numr = std::atoi(starr);
//Printing the entered number from the user
std::cout<<"The number after conversion is = "<< num <<'\n';
return0;
}
Output :
Enter any number : 2022
The number after conversion is = 2022
Explanation :
The preceding code was used to create a C++ file that used the atoi() function to transform a string of numbers into an integer. The string was converted into a char array using the strcpy() method. The input string value was transformed to a char array, which was then utilised in the atoi() method to extract the string's integer value. If the conversion is successful, the modified integer will be printed, which is shown here in the output.
Conversion of string to int in C++ using stoi() :
The atoi() method converts a string data type value into an int and returns a number. This function's first parameter is required, but the remaining arguments are optional. This function's syntax is listed below-
Syntax :
int stoi (const string& strng, size__t* idx = 0, int base = 10)
Example :
//Included for the printing of the output
#include <iostream>
int main()
{
//Declaring the string variable
std::string stData;
//Taking a random number from the programmer
std::cout<”Enter any number : ”>stData;
//Converting a string to a number with an error handling method
try {
//Converting a string to an int
int num = std::stoi(stData);
//Printing the number that has been converted
std::cout<<"The number after conversion is = "<< num <<'\n';
}
//Handling error if the invalid number is given as input
catch (std::invalid_argconst&e) {
std::cout<<"Error! Input value is not a number or integer value.\n";
}
return0;
}
Output :
Enter any number : 2023
The number after conversion is = 2023
Explanation :
We used the stoi() method to convert a string into an int and built a C++ file containing the above code. If the input value provided by the user is a valid number, the code will convert it to an int number and output it. The invalid argument exception will be thrown and an error message will be written if input value includes an alphabet or non-numeric character.
Difference between atoi() and stoi() :
- atoi() is a C-style function from the past. stoi() is a new function in C++ 11.
- stoi() works with both C++ and C style strings, but atoi() only works with C-style strings (char array and string literal).
- atoi() only accepts one argument and returns an integer value.
- stoi() may accept up to three parameters: the second argument is for the beginning index, and the third parameter is for the base of the input number.
Conversion of string to int in C++ using string streams :
Another technique to convert a string to an integer is to use the istringstream() function with the '>>' operator.
Example :
Example :
//Included for the printing of the output
#include <iostream>
//Include for using istringstream() function in the program
#include <sstream>
int main()
{
//Declaring the string variables
std::string stData = "100";
//Declaring an int variable
int num;
//Converting the string to the int
std::istringstream(stData) >> num;
//Printing the number that is converted
std::cout<<"The number after conversion is = "<< num <<'\n';
return0;
}
Output :
The number after conversion is = 100
Explanation :
We created a C++ file containing the above code to use the istringstream() method to transform string data type into an int. In the code, a string value of numbers was set to a string variable and utilised as the arguments value of the istringstream() method. After that, the modified integer value was displayed.
Conversion of string to int in C++ using sscanf() function :
Another option is to use the sscanf() function to convert the string to an integer. This function requires the inclusion of the cstdio header file.
Example :
//Included for the printing of the output
#include <iostream>
//Included for using sscanf() function in the program
#include <cstdio>
int main() {
//Declaring the string variable
std::string stData;
//Declaring the int variable
Int num;
//Taking the number from the programmer
std::cout<”Enter any number : ”>stData;
if (sscanf(stData.c_str(), "%d", &num) == 1) {
//Printing the number that is converted
std::cout<<"The number after conversion is = "<< num <<'\n';
}
else {
//Printing the error message for invalid input
std::cout<<"Input value is not a valid number as required.\n";
}
return0;
}
Output :
Enter any number : 2025
The number after conversion is = 2025
Explanation :
Using the sscanf() method, we generated a C++ file containing the above code to convert string value to an int. Following the execution of the script, the user will be given a string value. If the input data is a valid number, it will be transformed to an int and shown, else an error message will be displayed.
Conversion of string to int in C++ using for loop :
Without utilising any built-in functions, the following example demonstrates what to do to convert a string value to an integer value by just using a for loop.
Example :
#include <iostream>
#include <string>
int main()
{
//Declaring the string variable
std::string stData = "1000";
//Declaring the int variable
Int num;
//Converting the given string to an int
for (char ch: stData)
{
if (ch>= '0' && ch<= '9') {
num = num * 10 + (ch - '0');
}
//Printing the number that is converted
std::cout<<"The number after conversion is = "<< num <<'\n';
return0;
}
Output :
The number after conversion is = 1000
Explanation :
Using the 'for' loop, we generated a C++ file containing the following code to transform a text value into an int or number. The number's string value was set to a variable, which was then utilised in the 'for' loop to transform the string to an integer and was later printed as the converted number in the output.
Conclusion:
This article explains five distinct techniques to convert a string to an integer using easy examples to help readers understand how to convert a string into an int in C++ programming language.