그래서 BigNum 클래스를 구현하여 큰 정수를 처리하고 현재 문자열 생성자 클래스를 수정하려고합니다. 나는 "-345231563567"과 같은 문자열을 역순으로 읽는 배열 (예 : 765365132543)로 읽을 수 있어야합니다. 첨부 된 코드의 첫 번째 부분은 첫 번째 문자가 양수인지 음수인지를 확인하고 양수를 true 또는 false로 설정합니다. 코드의 다음 부분은 번호가 0 인 경우뿐만 아니라 발생할 수있는 숫자의 앞에 오는 0을 확인합니다. 마지막 부분은 배열에 숫자를로드하는 것이므로 어떤 이유로 코드가 작동하지 않습니다. 솔루션에 대한 모든 도움을 주시면 감사하겠습니다.BigNum 클래스 String 생성자 오류
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
를 찾을 수 있으며 내가 사용하려고 테스트 파일은 여기에서 찾을 수 있습니다. 테스트에 실패했습니다. http://csel.cs.colorado.edu/%7Eekwhite/CSCI2270Fall2011/hw2/revised/TestBigNum.cxx
무엇이 오류입니까, BTW ?? – liaK
내가 설정 파일을 실행하려고하면 특별히 문자열 생성자를 테스트하는 테스트가 실패합니다. 어떤 이유로 배열에 문자열을 읽지 않습니다. – Sean
저장소에'std :: string '을 사용하지 않는 이유는 무엇입니까? –