Итак, я реализую класс BigNum для работы с большими целыми числами и в настоящее время пытаюсь исправить свой класс строкового конструктора.Я должен иметь возможность читать строки, такие как "-345231563567" в массиве с номерами, читаемыми в обратном направлении (т.е. 765365132543).Первая часть прикрепленного кода проверяет первый символ, чтобы увидеть, является ли он положительным или отрицательным, и устанавливает положительное значение в true или false.Следующая часть кода проверяет наличие начальных нулей в числе, которое может произойти, а также, если само число равно нулю.последняя часть - это то, что загружает число в массив, и по какой-то причине я не могу заставить код работать.любая помощь с решением очень ценится.
BigNum::BigNum(const char strin[])
{
size_t size = strlen(strin);
positive = true;
used=0;
if(strin[0] == '+')
{
positive = true;
used++;
}
else if(strin[0] == '-')
{
positive = false;
used++;
}
else
{
positive = true;
}
// While loop that trims off the leading zeros
while (used < size)
{
if (strin[used] != '0')
{
break;
}
used++;
}
// For the case of the number having all zeros
if(used == size)
{
positive = true;
digits = new size_t[1];
capacity = 1;
digits[0] = 0;
used = 1;
}
// Reads in the digits of the number in reverse order
else
{
int index = 0;
digits = new size_t[DEFAULT_CAPACITY];
capacity = size - used;
while(used < size)
{
digits[index] = strin[size - 1] - '0';
index++;
size--;
}
used = index + 1;
}
}
BigNum.h можно найти здесь http://csel.cs.colorado.edu/%7Eekwhite/CSCI2270Fall2011/hw2/revised/BigNum.h
, а тестовый файл, который я пытаюсь использовать, находится здесь.Я провалил тест 7 http://csel.cs.colorado.edu/%7Eekwhite/CSCI2270Fall2011/hw2/revised/TestBigNum.cxx