×

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

Storage Classes in C

Storage Classes in C Storage Classes are used to define the variable and function property. These functionalities include basically the scope, accessibility, and lifetime that help us detect the existence of...

4 minutes read.

goto statement in C and C++

goto statement in C and C++ The goto statement is a jump statement, also sometimes referred to as an unconditional jump statement. Within a function, the goto statement can be used...

3 minutes read.

C++ program to read string using cin.getline()

C++ program to read string using cin.getline() C++ getline() is a standard library feature for reading a string or a line from an input source. A getline() function gets characters from...

3 minutes read.

Convex hull Algorithm in C++

The intersection of all convex sets containing a certain subset of a Euclidean space, or alternatively, the set of all convex combinations of points in the subset, defines the convex...

4 minutes read.

C++ String Concatenation

C++ String Concatenation In this section, we will learn about C ++ String Concatenation, what it does, how it works, and will also see its programs. What is the String Concatenation? The + operator...

3 minutes read.

Stringstream in C++ and its applications

In this tutorial, we will explore what the stringstream in C++ is. We will also learn its application. What is stringstream? With the aid of a stringstream, user can read from a...

2 minutes read.

C++ array of Pointers

Array of Pointers: In high-level programming languages like C++, the array's name is its pointer. The name of an array contains an address which is the address of an element. In...

4 minutes read.

Vector Size in C++

What are Vectors?  In the C++ programming language, vectors are run-time sequence containers representing arrays with variable sizes, which are contained within STL (Standard Template Library). They utilize contiguous storage spaces...

6 minutes read.

How to create the Processes with Fork in C++

 In this article, we are going to explain the different methods that help us to create processes with a fork(). There are two methods to do so. These methods are...

2 minutes read.

C++ Heap Sort

Heapsort is executed on the structure of the heap data. We know heap is a complete tree in binary form. The heap tree can be of two different types: Min-heap,...

3 minutes read.

Inheritance in C++ vs Java

Just like we inherit traits from our parents, object-oriented programming has a concept called inheritance. In terms of object-oriented programming, a class's traits and behaviours, or its data and methods,...

4 minutes read.

Reverse a Number in C++

In this tutorial, you'll learn how to utilize a C++ program to reverse a number entered by a user at runtime. Because there are various ways to write a C++...

3 minutes read.

Program to convert infix to postfix expression in C++

Parentheses are frequently employed in mathematical formulas to make their interpretation easier to understand. However, with computers, parenthesis in an expression might lengthen the time it takes to find a...

7 minutes read.

C++ Reading file

In file handling, read() function is used to read data from the file into the program. The read() uses ifstream library to read data from a file. Syntax file-stream-class   file-stream-object;   file-stream-object.read((char *)&var , sizeof (var)); <h3">Example ofstream  outfile;         outfile . read((char*)&emp,sizeof(emp)); C++ File Handling read() Function Example Reading the content of existing...

2 minutes read.

RTTI (Run-Time Type Information) in C++

In C++, RTTI or Run-Time Type Information reveals information about the data type of an object at runtime and only works with classes that have at least one virtual function....

3 minutes read.

Unary Operators in C++

Unary operators in C++ Unary operator: is operations that function to produce a new value on a single operand. a) unary minus: A minus operator modifies the argument's symbol. A positive number...

3 minutes read.

Observer Design Pattern in C++

The Observer design pattern is a behavioural design pattern that allows an object (known as the subject) to notify other objects (known as observers) when its state changes. This is...

3 minutes read.

C++ Keywords

In this article, we will discuss keywords in C++ with their several features and functions. What are Keywords in C++? In C++, a keyword is a reserved word that has a predefined...

4 minutes read.

Hybrid Inheritance

C++ Hybrid Inheritance When more than one type of inheritance is combined in single inheritance is called as hybrid inheritance. C++ Hybrid Inheritance Example #include<iostream>   using namespace std;   class Student{       protected:           int rollno;       public:           void getRoll(int a){               rollno=a;           }           void putRoll(void){               cout <<"Roll No: "<< rollno<<endl;           }   };   class Test : public Student{       protected:           float subject1, subject2;       public:           void getMarks(float x, float y){               subject1=x;               subject2=y;           }           void putMarks(void){               cout<< "Marks gain: "<<endl <<"Subject1 =  "<<subject1<<endl<<"Subject2 = "<<subject2 <<endl;           }   };   class Sport{       protected:           float score;       public:           void getScore(float s){               score=s;           }           void putScore(void){               cout<<"Sports score: "<<score<<endl;           }   };   class Result : public Test, public Sport{       float total;       public:           void display(void);   };   void Result:: display(void){       total=subject1+subject2+score;       putRoll();       putMarks();       putScore();       cout<<"Total Score: "<<total<<endl;   }   int main(){       Result stu;       stu.getRoll(10);       stu.getMarks(40,50);       stu.getScore(60);       stu.display();       return 0;   } Output: Roll No: 10 Marks gain: Subject1 = 40 Subject2 = 50 Sports score: 60 Total...

1 minute read.

C++ Fibonacci Series

What is a Fibonacci series? A Fibonacci series or sequence is a very popular programming paradigm. The next element occurring in the N terms series is determined by the sum of...

2 minutes read.