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

## 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:

 `// 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.

My Personal Notes arrow_drop_up