×

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.


Related Topics

Passing by Reference Vs. Passing by the pointer in C++

 Passing by Reference Vs. Passing by the pointer in C++ Throughout C++, it can transfer parameter values except by pointers or through referring to a function. For both cases, we have...

3 minutes read.

C++ Friend Functions

In C++, friends are special functions that are not a part of a class yet have access to its private and protected members. The friend keyword is used to declare...

4 minutes read.

How to enter a name in C++

A name is a string or array of characters or letters. The string is one of the most helpful data types offered by the C++ library. A string helps the...

4 minutes read.

Single Handling in C++

Introduction: Single handling in C++ refers to a technique for processing multiple events or requests with a single function or handler rather than creating separate functions for each task. This allows...

5 minutes read.

C++ add two numbers using the function

Here we will learn how to add two numbers by creating function in C++. Let’s learn this with help of example. Code: - #include <iostream> using namespace std; int add_two_no(int a, int b); int main(){   int...

1 minute read.

C++ | C Plus Plus Data type

Data type in every language is very important. Data type means the different kinds of data that are supported by a particular programming language. A computer language’s data types specify the...

15 minutes read.

C++ Maximum Index Problem

Given an array A[] of positive integers. We will find the maximum of (j-i) such that i and j are the indexes of A[] and A[i] <= A[j], i<=j For...

5 minutes read.

swap() function in C++

Swap() function: swap() function in C++: swap() function is a pre-define function in c++ present in STL( Standard template library ). It is used to swap two numbers. It takes two mandatory...

6 minutes read.

Top best IDEs for C/C++ Developers in 2024

Nothing in the current digital world is conceivable without programming. Everything needs programming, from the cell phones in our pockets to self-driving cars. Programming is also necessary for the mouse...

9 minutes read.

Accumulate() and partial_sum() in C++ STL Numeric header

The C++ STL's numeric library includes the numeric header. This library provides efficient numeric arrays, support for random number generation, and fundamental mathematical operations and types. Several of the numeric...

3 minutes read.

C++ If-else-if

Introduction: If-else-if control statement is an if statement used with an optional else if control statement to check multiple conditions. In this control statement, when any one of the condition returns...

4 minutes read.

Pure Virtual Function in C++ With Example Program

What is a Virtual Function? A virtual function is created inside a class with the keyword virtual. A virtual function does not have any value to be returned. Once a virtual...

3 minutes read.

C++ Enumeration

C++ Enumeration In C++, Enum is a special data type that contains some fixed sets of components that have various applications in the programming. Enum works fine with fixed constant sets...

3 minutes read.

C++ find missing in the second array

Given two arrays A and B of sizes n and m. Find the elements from array A that are not present in array B. Example Input : a[] = {1, 2, 3, 5,...

3 minutes read.

C++ vardiac() function

In the C++ programming language, the flexibility feature is provided by the variadic function. To understand more about flexibility, let's see the following syntax. Syntax: If we have to add two numbers,...

3 minutes read.

Factorial Program in C++

C++ Factorial Program: The product of all positive descending integers is the factorial of n. n! denotes the factorial of n. For instance: 5! = 5*4*3*2*1=120 4! = 4*3*2*1=24 In Combinations and Permutations, the...

4 minutes read.

Free vs delete() in C++

Free vs delete() in C++ In this section, we will learn about the free() function and also create a C ++ program of the delete operator. What is free() Function in C++? In...

4 minutes read.

C++ Interfaces

The C++ programming language provides programmers with a variety of capabilities and functions. It also enables object-oriented programming, which is essential while working on a project. It will be simple...

7 minutes read.

How to Handle Divide by Zero Exception in C++

If you are a programmer or interested in coding then it is obvious that you face some illogical test cases. Suppose, you have written one program that calculates the factorial...

6 minutes read.

Abstract class in C++

In this article, you will get exposure to an abstract class in C++. We will discuss this topic using some practical examples too. To understand the abstract classes, you should...

6 minutes read.