Skip to content
Related Articles

Related Articles

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.

My Personal Notes arrow_drop_up
Recommended Articles
Page :