Skip to content
Related Articles

Related Articles

Improve Article

Convert a String to Integer Array in C/C++

  • Difficulty Level : Medium
  • Last Updated : 31 Aug, 2020

Given a string str containing numbers separated with “, “. The task is to convert it into an integer array and find the sum of that array.

Examples:

Input : str  = "2, 6, 3, 14"
Output : arr[] = {2, 6, 3, 14}
Sum of the array is = 2 + 6 + 3 + 14 = 25

Input : str = "125, 4, 24, 5543, 111"
Output : arr[] = {125, 4, 24, 5543, 111} 

Approach:

  • Create an empty array with size as string length and initialize all of the elements of array to zero.
  • Start traversing the string.
  • Check if the character at the current index in the string is a comma(,). If yes then, increment the index of the array to point to the next element of array.
  • Else, keep traversing the string until a ‘,’ operator is found and keep converting the characters to number and store at the current array element.
    To convert characters to number:

    arr[j] = arr[j] * 10 + (Str[i] – 48)



Below is the implementation of the above idea:




// C++ program to convert a string to
// integer array
#include <bits/stdc++.h>
using namespace std;
  
// Function to convert a string to
// integer array
void convertStrtoArr(string str)
{
    // get length of string str
    int str_length = str.length();
  
    // create an array with size as string
    // length and initialize with 0
    int arr[str_length] = { 0 };
  
    int j = 0, i, sum = 0;
  
    // Traverse the string
    for (i = 0; str[i] != '\0'; i++) {
  
        // if str[i] is ', ' then split
        if (str[i] == ',')
            continue;
         if (str[i] == ' '){
            // Increment j to point to next
            // array location
            j++;
        }
        else {
  
            // subtract str[i] by 48 to convert it to int
            // Generate number by multiplying 10 and adding
            // (int)(str[i])
            arr[j] = arr[j] * 10 + (str[i] - 48);
        }
    }
  
    cout << "arr[] = ";
    for (i = 0; i <= j; i++) {
        cout << arr[i] << " ";
        sum += arr[i]; // sum of array
    }
  
    // print sum of array
    cout << "\nSum of array is = " << sum << endl;
}
  
// Driver code
int main()
{
    string str = "2, 6, 3, 14";
  
    convertStrtoArr(str);
  
    return 0;
}
Output:
arr[] = 2 6 3 14 
Sum of array is = 25

Time Complexity: O(N), where N is the length of the string.

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.  To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

In case you wish to attend live classes with experts, please refer DSA Live Classes for Working Professionals and Competitive Programming Live for Students.




My Personal Notes arrow_drop_up
Recommended Articles
Page :