 Open in App
Not now

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

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

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} ```

## Recommended: Please try your approach on {IDE} first, before moving on to the solution.

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:

## CPP

 `// C++ program to convert a string to` `// integer array` `#include ` `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.

Auxiliary Space: O(N), Where N is the length of the string

My Personal Notes arrow_drop_up
Related Articles