2012-05-14 5 views
3

문자열을 int 배열로 변환해야합니다. 그래서 문자열을 통해 루프를 만들고 stdlib.h에서 int atoi(char *p) 함수를 호출하지만, 그것은 맥에서 작동하지 않습니다 (몇 시간 전에 나는 그것을 Windows에서 tryed하고 잘 작동합니다). 간단한 루프 :Atoi (char * p) 함수

for(p = buff; *p; p++) 
    printf("%d", atoi(p)); 

이 함수의 작동에 문제가 있다고 생각하십니까?

+1

'buff'의 각 'char'을 'int'로 변환 하시겠습니까? – hmjd

답변

5

이 기능은 완벽하게 작동합니다. 예를 들어 buff"123"이 포함되어 있으면 코드에 123233이 인쇄됩니다.

그러나 개별 숫자의 값만 인쇄하려는 경우이 경우 atoi은 문제와 관련이 없습니다. 시도해보십시오 :

for(p = buff; *p; p++) 
    printf("%d", *p-'0'); 
+1

'isdigit()'을 사용하여 실제로 숫자인지 확인한 후 – dwalter

+0

yap, thnx isdigit로 변환해야합니다. –

+0

올바른 경우 답변을 수락해야합니다. – CStreel

관련 문제