Как преобразовать массив чисел char в int в классе, который работает с "длинными" числами?
class Long
{
private:
char arr[100];
public:
Long();
void input();
void show();
Long operator+(const Long& l1);
};
void Long::show()
{
for (int i = 0; i < 5; i++)
{
cout << (arr1[i]);
}
}
Long Long::operator+(const Long& l1)
{
Long l2;
int k = 0;
for (int i = 4; i >= 0; i--)
{
if (i == 4)
{
if ((arr[i] + l1.arr[i]) >= 10)
{
l2.arr[i] = (arr[i] + l1.arr[i]) % 10;
k = 1;
}
else if ((arr[i] + l1.arr[i]) < 10)
{
l2.arr[i] = (arr[i] + l1.arr[i]);
}
}
if (i != 4)
{
if (k == 1)
{
l2.arr[i] = (arr[i] + l1.arr[i] + k) % 10;
if ((arr[i] + l1.arr[i] + k) >= 10)
{
k = 1;
}
else if ((arr[i] + l1.arr[i] + k) < 10)
{
k = 0;
continue;
}
}
if ((arr[i + 1] + l1.arr[i + 1] + k) < 10)
{
if (k == 0)
{
l2.arr[i] = (arr[i] + l1.arr[i]) % 10;
if ((arr[i] + l1.arr[i] + k) >= 10)
{
k = 1;
}
else if ((arr[i] + l1.arr[i] + k) < 10)
{
k = 0;
continue;
}
}
else if (k == 1)
{
l2.arr[i] = (arr[i] + l1.arr[i] + k);
if ((arr[i] + l1.arr[i] + k) >= 10)
{
k = 1;
}
else if ((arr[i] + l1.arr[i] + k) < 10)
{
k = 0;
continue;
}
}
}
}
}
return l2;
}
Я понимаю, что код написан очень коряво, но я бы хотел, чтобы в методе show выводилась сумма двух чисел. И вообще будет ли он работать с char?