Open In App

C++ Program For String to Long Conversion

Last Updated : 03 May, 2023
Improve
Improve
Like Article
Like
Save
Share
Report

In this article, we will learn how to convert strings to long in C++. For this conversion, there are 3 ways as follows:

  1. Using stol()
  2. Using stoul()
  3. Using atol()

Let’s start by discussing each of these methods in detail.

Example: 

Input: s1 = “20” 
           s2 = “30” 

Output: s1 + s2 
             long: 50

1. Using stol()

In C++, the stol() function performs a string to long conversion. 

Syntax:

long int stol (const string&  str, size_t* idx = 0, int base = 10)

Parameters:

  • str: It specifies a string object with the representation of an integral number.
  • idx: It specifies a Pointer to an object of type size_t, whose value is set by the function to the position of the next character in str after the numerical value. The parameter can also be a null pointer, in which case it is not used.
  • base: It specifies the numerical base to determine the number system in which the characters are interpreted. If the base is 0, the base to be used is determined by the format in the sequence. The default value is 10.

Below is the C++ program to string to long using stol():

C++




// C++ program to convert
// string to long using stol()
#include <iostream>
using namespace std;
 
// Driver code
int main()
{
    char s1[] = "20";
    char s2[] = "30";
    long int n1 = stol(s1);
    long int n2 = stol(s2);
    long int res = n1 + n2;
    cout << res;
    return 0;
}


Output

50

The time complexity is O(1).

The auxiliary space is also O(1).

2. Using stoul()

In C++ to convert a string into a long integer, there is a function called stoul(). The stoul() function performs a string to unsigned long conversion. 

Syntax:

unsigned long stoul (const string&  str, size_t* idx = 0, int base = 10);

Parameters:

  • str: String object with the representation of an integral number.
  • idx: Pointer to an object of type size_t, whose value is set by the function to the position of the next character in str after the numerical value. This parameter can also be a null pointer, in which case it is not used.
  • base: Numerical base (radix) that determines the valid characters and their interpretation. If this is 0, the base used is determined by the format in the sequence. Notice that by default this argument is 10, not 0. 

Below is the C++ program to convert string to long using stoul():

C++




// C++ program to convert
// string to long using stoul()
#include <iostream>
using namespace std;
 
// Driver code
int main()
{
    char s1[] = "20";
    char s2[] = "30";
    unsigned long int n1 = stoul(s1);
    unsigned long int n2 = stoul(s2);
    unsigned long int res = n1 + n2;
    cout << res;
    return 0;
}


Output

50

The time complexity is O(1)

The auxiliary space is also O(1)

3. Using atol()

In C++, the atol() function translates a string and returns its equivalent integer value.

Syntax:

long int atol (const char * str)

Parameters: The function accepts one mandatory parameter str which is the representation of an integral number.

Below is the C++ program to convert string to long using atol():

C++




// C++ program to convert
// string to long using atol()
#include <iostream>
using namespace std;
 
// Driver code
int main()
{
    char s[] = "123456654";
    long int n = atol(s);
    cout << n;
    return 0;
}


Output

123456654


Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads