atoi() 함수 질문이요
HotPink
질문 제목 : 질문 내용 :
#include stdio.h
#include stdlib.h
void main(){
char name[][9]={{2 1 3abc},{a456},{a-789},{a 730},{334a},{-015ab},{+96 3},{\n\t -662},{\n\n+465@}};
int i;
int result[9];
for(i=0;i9;i++){
result[i] = atoi(name[i]);
}
for(i=0;i9;i++){
printf(%d. %s - %d\n,i+1, name[i],result[i]);
}
getch();
}
결과 값
2 1 3abc =2
a456 =0
a-789 =0
a 790 =0/span;0
334a =334
-015ab =-15
+96 3 =96
\n\t -662 =-662
\n\n+465@ =465
이런식으로 다 잘 나왔는데
제가 여기서 궁금한게 -015ab 부분입니다
결과값이 -15로 나오네요., 0이 어디갔는지.,
같은 예로 0123 이런식으로 실행하면 123만 출력이 되네요
0이 출력이 왜 안되죠 ..?
( 중간에 끼어있으면 잘 되는데 1023 =1023 )
-
Creator
시쓰는님 말씀대로 ... 숫자 앞에 0이 붙으면 그건 숫자라기보다는 문자열에 가까운 형식인거 같습니다.
-
한
문장열 \015\를 atoi 가 수치 15로 바꾸고 그것을 프린트 하니 당연히15로 출력하죠. 015출력하는 것이 더 이상하죠.
-
서향
감사합니다~
0을 처음에 쓰면 0이 출력이 되지 않는 이유도 궁금해요~ -
참이
printf에서 %04d 로 하면 됩니다.