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

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

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