Recursive Implementation of atoi()

atoi() function takes an string(which is a number) as an argument and returns its value


s = “33”


In the above example, we are passing 33 as a string and the output is a value


1. Separate the last digit and recursivley compute result for remaining n-1 digits
a. Multiply the result with 10 and add the obtained value to last digit

C++ Program

// Recursive C++ program to compute atoi()
#include <bits/stdc++.h>
using namespace std;
// Recursive function to compute atoi()
int atoiRecursively(char *s, int n)
    // Base case (Only one digit)
    if (n == 1)
        return *s - '0';
    // If more than 1 digits, recur for (n-1), multiply result with 10
    // and add last digit
    return (10 * atoiRecursively(s, n - 1) + s[n-1] - '0');
// Driver Program
int main(void)
    char s[] = "33";
    int n = strlen(s);
    cout<<atoiRecursively(s, n)<<endl;
    return 0;

Try It


See also
Isomorphic Strings