cuu741   5년 전

ㅇ예제문항 모두 바르게 출력되는데 왜 틀린건가요?

djm03178   5년 전

atoi는 문자열을 정수로 변환해주는 함수입니다. 문진열이라는 것은 어떤 주소에서 시작해서, 한 칸씩 나아가면서 널 문자가 나타나는 지점까지를 의미하고, 모든 문자열 함수는 기본적으로 그렇게 문자열의 끝을 찾습니다.

하지만 char temp는 그냥 1바이트짜리 문자일 뿐입니다. temp의 주소 다음 주소는 무엇인지 전혀 알 수 없고, 접근을 시도해서도 안 되는데 atoi는 문자열의 끝을 찾기 위해 계속 전진합니다. 운 좋게 temp 바로 다음 주소에 0값이 들어있다면 atoi가 잘 동작하겠지만, 그렇지 않다면 당연히 틀릴 것입니다.

숫자 한 자를 정수값으로 바꾸려면 그냥 temp - '0' 라고 하면 됩니다.

djm03178   5년 전

@seaoffizier atoi는 표준이 맞습니다. itoa가 비표준입니다.

댓글을 작성하려면 로그인해야 합니다.