Table of Contents
Write a function which converts the given string(which represents an integer) to its value.
Example
Input string : “3486”
Output : 3486
Time complexity : O(n)
Algorithm
For positive integers,
a. Initialize result = 0.
b. Traverse the string.
c. For every character in the string, result = result*10 + string[i].
d. Return final result.
For negitive integers, Keep track of negative sign,
a. If string[0] = -, sign = -1.
b. Multiply sign to final result.
c. Return final result.
Algorithm working
Input string : “3468”
Apply algorithm,
Initialize result = 0
a) For i = 0,
result = result*10 + string[i]
result = 0*10 + 3
result = 3
b) For i = 1,
result = result*10 + string[i]
result = 3*10 + 4
result = 34
c) For i = 2,
result = result*10 + string[i]
result = 34*10 + 6
result = 346
d) For i = 3,
result = result*10 + string[i]
result = 346*10 + 3
result = 3468
End loop here,
Final output: 3468
C++ Program
#include <bits/stdc++.h> using namespace std; //Functions to convert into integer(only positive ) int Convert(char *string) { int result = 0; for (int i = 0; string[i] != '\0'; ++i) { result = result*10 + string[i] - '0'; } return result; } //Function for both positive and negitive int ConvertNeg(char *string) { int result = 0; // Initialize sign as positive int sign = 1; int i = 0; if(string[0] == '-') { sign = -1; i++; } for(i;string[i] != '\0'; ++i) { result = result*10 + string[i] - '0'; } //result with sign return sign*result; } //Main function int main() { char string[] = "3468"; int final_value = ConvertNeg(string); cout<<final_value; return 0; }