khs96p   5년 전

출력은 다 되는데 왜 틀렷다고 나오는걸까요?

kimsy96   5년 전

문자열 입력방식이 이상합니다 

khs96p   5년 전

scanf("%s",&a); 이부분 잘못써서

scanf("%s",a); 로 바꿔서 다시 제출해봤는데 여전히 틀렷다고 합니다.

kimsy96   5년 전

atoi는 문자열을 int로 바꿔주는 함수입니다 

정확하진 않지만 atoi는 NULL로 종결되는 수식을 포함하는 문자열의 포인터를 받아서 작동하는데 문자열이 아닌 문자를 입력받아서 저렇게 바꿔버리면 동작이 이상해질거같은데요 

khs96p   5년 전

char a2;  이 부분을

char *a2=NULL; 로 변경해주었더니 맞았다고 처리되었습니다. 

말씀하신 atoi에 대해서는 조금 더 공부한 후에 다시 알아보도록 하겠습니다.

답변 감사합니다.

djm03178   5년 전

그것도 올바른 방법이 아닙니다. atoi는 문자열을 정수로 바꾸어주는 것이고, 문자열이란 char형이 연속으로 있다가 마지막에 널 문자 '\0'이 나타나는 형태를 말합니다. 널 문자가 없으면 atoi 함수는 문자열의 끝이 어딘지 알 수 없습니다.

하나의 문자를 그에 맞는 정수값으로 바꾸는 데에는 a[i-1] - '0' 으로 충분합니다.

khs96p   5년 전

atoi 에 대해 잘못 이해를 했던거 같습니다. 

처음에 쓸때 atoi가 a 배열에 속하는 요소 각각 하나씩 바꿔준다고 생각했는데 다시 알아보니 그게 아니였군요.

좋은 답변 감사합니다.!

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