2012-02-02 3 views
0

나는 내가 int로 문자열에서 변경할 때 atoi 함수를 사용하는 데 사용I는 (오래 오래) 정수

는 "오래 오래 INT"문자열을 구문 분석 할 필요가있는 코드를 작성하고 같은 문자열을 구문 분석 그다지 효과가 없다고 생각합니다. 지금 무엇을 사용할 수 있습니까?

--Thanks

+2

찾고있는 구는 "(긴 long) 정수로 문자열을 구문 분석"입니다. 정치가들에게 "변경"을 남겨주세요 :-) –

답변

5

사용 strtoll() (man page) :

#include <stdlib.h> 

long long int n = strtoll(s, NULL, 0); 

(.이되지 C89에 C99 및 C11에서만 사용할 수 있습니다) 세 번째 인수는 변환을 위해 숫자 기지, 0은 "자동"을 의미합니다. 즉, 일반적인 규칙 (10, 010, 0x10)에 따라 10 진수, 8 진수 또는 16 진수가 선택됩니다. 문자열이 0으로 시작하는 경우를 염두에 두시기 바랍니다.

+0

100 % 정확하지만 두 가지 경고 : 010은 8이기 때문에 (다른 사람들에게는 터무니없는 것) 자동적 인 기반은 혼란 스러울 수 있습니다. 둘째, 실제로 오류 검사를 수행하지 않습니다. 따라서 "7up"은 7이되고 "hello"는 0이됩니다. – ugoren