i've been working on a program that extends the limit of an integer using arrays
here is my code so far

#include<iostream>
#include<string>

using namespace std;

void sub();
void add();
void mult();

int main()
{	
	int operation;
	cout<<"Please Enter a number"<<endl<<"1.Addition"<<endl<<"2.Subtraction"<<endl<<"3.Multiplication"<<endl<<endl;
	cin>>operation;
	
	if(operation == 1)
	{
		add();
	}
	if(operation == 2)
	{
		sub();
	}
	if(operation == 3)
	{
		mult();
	}
	int x; cin>>x;
	return 0;
}

void add()
{
	char s_num1[999],s_num2[999],s_ans[999];
	int k=0, i,j,p,l1,l2; 
	int tens=0, ones,ans;
	int v=0;

	cout<<"Enter The First number"<<endl;
	cin>>s_num1;
	cout<<"Enter The Second number"<<endl;
	cin>>s_num2;
	
	for(l1=0;s_num1[l1]!='\0';l1++);
	for(l2=0;s_num2[l2]!='\0';l2++);
	l1--;
	l2--;
for(i=l1,j = l2;(i>=0)&&(j>=0);i--,j--){
		ans = (int) s_num1[i] + (int) s_num2[j] + tens - 2*48;
		ones=ans%10;
		tens=ans/10;
		s_ans[k] = ones + 48;
		k++;
	}
	while(i>=0){
		ans = tens + (int) s_num1[i] -48;
		ones=ans%10;
		tens=ans/10;
		s_ans[k] = ones + 48;
		k++;
		i--;
	}
				
	while(j>=0){
		ans = tens + (int) s_num2[j] -48;
		ones=ans%10;
		tens=ans/10;
		s_ans[k] = ones + 48;
		k++;
		j--;
	}
	if(tens!=0)
		s_ans[k++] = tens+48;
	for(p=k-1;p>=0;p--)
		cout<<s_ans[p];
}


void sub()
{
	int l1, l2,j,i,v=0,p;
	char s_num2[999],s_num1[999];
	int list[10000];

	cout<<"Enter The First number"<<endl;
	cin>>s_num1;
	cout<<"Enter The Second number"<<endl;
	cin>>s_num2;
	
	for(l1=0;s_num1[l1]!='\0';l1++);
	for(l2=0;s_num2[l2]!='\0';l2++);
	l1--;
	l2--;
	
	for(i=l1, j = l2;(i>=0)&&(j>=0);i--,j--)
	{
		list[v] = s_num1[i] -  s_num2[j];
		if(list[v]<0)
		{ 
			list[v] = s_num1[i] -  s_num2[j]+10;
			s_num1[i-1]=s_num1[i-1]-1;
		}
		v++;
	}
	for(;(j<0)&&(i>=0);)
	{	
		list[v]=s_num1[i] -  '0';
		v++;
		i--;
	}
	for(p=0; p<v;v--)
	{
		cout<<list[v-1];
	}
}

void mult()
{
	//workin
}
}

now ive been using character array changing numbers like 2326 into list[]='2','3','2','6'. It has worked ok for addings and subbin but now i need to multiply two inputs....

SO HERES WHERE IM STUCK! I want to turn a input of a number such as 23123, into integer(not charaters)
list[0]=2
list[1]=3
list[2]=1
list[3]=2
list[4]=3
and i have no clue how to do it.... helps!

cause it was the only way i could think of to put single numbers into each array to compute numbers such as

28193712987128937219878129378921738921739812 + 1289378129738912738921738921738921738

May be you can try using some of the standard lib methods like strtol,strtod, strtoul etc. i'm not sure which will be sufficient for this range of numbers.

This article has been dead for over six months. Start a new discussion instead.