gpt4 book ai didi

c++ - BigNum 类字符串构造函数错误

转载 作者:太空宇宙 更新时间:2023-11-04 14:21:08 24 4
gpt4 key购买 nike

所以我正在实现一个 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

最佳答案

似乎您分配了定义为 20 的 DEFAULT_CAPACITY 字节,并继续在其中放入 22 位数字。

关于c++ - BigNum 类字符串构造函数错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7631297/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com