In this program you will be using a string to hold "big" integers. The int type has limits in C++ as you have learned in the past. In this program you will get practice using arrays and functions to build a "big" integer adder. Step 1: Write a function (call by reference, use &) to read in two strings which may represent big integers. The great thing about reading the numbers in as strings is that they can be output as a string and each individual element can be accessed as an array. One catch is that the most significant digit is at index 0. For example, if you read in the number 1234 in a string named s then s[0] is '1'. This demonstrates the second catch, which is that the "digits" are characters rather than numbers. You can convert a character to a number using a string of if statements or some clever character math. If you use the code: (int)('1' - '0') you will have the integer 1 for example. Step 2: After the last step, you should have two strings that represent two integers. These are not ints but rather just an array of characters that represent the digits of an integer. Write a function (call by value) that adds two of these integers together. You will have to add the strings starting at the end of the arrays. There are two ways to do this. One is to write a clever while loop that starts at the end of both arrays and makes sure to never "walk off" the beginning of either string. Perhaps an easier way is to reverse the strings before adding them and then simply reverse the result. As an example: 1234 is stored as 4 digits in the string '1' '2' '3' '4' 56 is stored as 2 digits in the string '5' '6' To add these together I simply cannot start at index 0. But rather I need to keep track of two separate indicies that mark the start of each number individually (or do the reverse trick). You can get the last index using string.length() - 1 Remember to consider carry. 6+4 = 10 means that the digit in the ones place of the result is '0' but that the tens place is 5+3+1 = 9