atoi, atol, atoll
From cppreference.net
|
헤더 파일에 정의됨
<stdlib.h>
|
||
|
int
atoi
(
const
char
*
str
)
;
|
(1) | |
|
long
atol
(
const
char
*
str
)
;
|
(2) | |
|
long
long
atoll
(
const
char
*
str
)
;
|
(3) | (C99부터) |
str 가 가리키는 바이트 문자열에서 정수 값을 해석합니다. 암시된 기수는 항상 10 입니다.
첫 번째 공백 문자가 아닌 문자를 찾을 때까지 모든 공백 문자를 버린 다음, 유효한 정수 숫자 표현을 형성하기 위해 가능한 많은 문자를 취하여 정수 값으로 변환합니다. 유효한 정수 값은 다음 부분으로 구성됩니다:
- (선택적) 양수 또는 음수 부호
- 숫자
결과 값을 표현할 수 없는 경우, 즉 변환된 값이 해당 반환 타입의 범위를 벗어나면 동작은 정의되지 않습니다.
목차 |
매개변수
| str | - | 해석할 null로 종료되는 바이트 문자열을 가리키는 포인터 |
반환값
성공 시 str 내용에 해당하는 정수 값.
변환을 수행할 수 없는 경우, 0 이 반환됩니다.
참고 사항
이름은 "ASCII to integer"를 의미합니다.
예제
이 코드 실행
#include <stdio.h> #include <stdlib.h> int main(void) { printf("%i\n", atoi(" -123junk")); printf("%i\n", atoi(" +321dust")); printf("%i\n", atoi("0")); printf("%i\n", atoi("0042")); // 선행 0이 있는 10진수로 처리됨 printf("%i\n", atoi("0x2A")); // 선행 0만 변환되고 "x2A"는 버려짐 printf("%i\n", atoi("junk")); // 변환을 수행할 수 없음 printf("%i\n", atoi("2147483648")); // UB: int 범위를 벗어남 }
가능한 출력:
-123 321 0 42 0 0 -2147483648
참조문헌
- C23 표준 (ISO/IEC 9899:2024):
-
- 7.22.1.2 atoi, atol, atoll 함수 (p: TBD)
- C17 표준 (ISO/IEC 9899:2018):
-
- 7.22.1.2 atoi, atol, atoll 함수 (p: 249)
- C11 표준 (ISO/IEC 9899:2011):
-
- 7.22.1.2 atoi, atol, atoll 함수 (p: 341)
- C99 표준 (ISO/IEC 9899:1999):
-
- 7.20.1.2 atoi, atol, atoll 함수 (p: 307)
- C89/C90 표준 (ISO/IEC 9899:1990):
-
- 4.10.1.2 The atoi function
-
- 4.10.1.3 The atol function
참고 항목
|
(C99)
|
바이트 문자열을 정수 값으로 변환
(함수) |
|
(C99)
|
바이트 문자열을 부호 없는 정수 값으로 변환
(함수) |
|
(C95)
(C99)
|
와이드 문자열을 정수 값으로 변환
(함수) |
|
(C95)
(C99)
|
와이드 문자열을 부호 없는 정수 값으로 변환
(함수) |
|
C++ documentation
for
atoi
,
atol
,
atoll
|
|