C 언어와 C++에서는 <cstdlib>(C에서는 <stdlib.h>) 헤더 파일에 포함된 표준 라이브러리 함수를 사용하여 문자열을 숫자 데이터로 손쉽게 변환할 수 있습니다. 이 글에서는 대표적인 문자열 변환 함수인 atol(), atoll(), atof()의 개념, 구문, 그리고 실제 동작 예제를 살펴보겠습니다.
1. atol() 함수
atol() 함수는 문자열을 long 정수형(long int)으로 변환합니다. 변환 가능한 숫자가 없거나 변환이 수행되지 않으면 0을 반환하며, 변환에 성공하면 해당 long int 값을 반환합니다.
구문
long int atol(const char *string)
예제
#include <bits/stdc++.h>
using namespace std;
int main() {
long int a;
char str[20] = "538756";
a = atol(str);
cout << "문자열을 long int로 변환한 결과 : " << a << endl;
return 0;
}출력 결과
문자열을 long int로 변환한 결과 : 538756
2. atoll() 함수
atoll() 함수는 문자열을 long long 정수형(long long int)으로 변환합니다. long 타입보다 더 넓은 범위의 큰 정수를 다룰 때 유용하며, 변환이 수행되지 않으면 0을 반환하고 성공 시 변환된 long long int 값을 반환합니다.
구문
long long int atoll(const char *string)
예제
#include <bits/stdc++.h>
using namespace std;
int main() {
long long int a;
char str[20] = "349242974200";
a = atoll(str);
cout << "문자열을 long long int로 변환한 결과 : " << a << endl;
return 0;
}출력 결과
문자열을 long long int로 변환한 결과 : 349242974200
3. atof() 함수
atof() 함수는 문자열을 double 타입의 부동 소수점 숫자로 변환합니다. 변환이 수행되지 않으면 0을 반환하며, 성공 시 변환된 부동 소수점 값을 반환합니다.
구문
double atof(const char *string)
예제
#include <bits/stdc++.h>
using namespace std;
int main() {
double a;
char s[20] = "3492.42974200";
a = atof(s);
cout << "문자열을 부동 소수점 값으로 변환한 결과 : " << a << endl;
return 0;
}출력 결과
문자열을 부동 소수점 값으로 변환한 결과 : 3492.43
마무리
atol(), atoll(), atof() 함수는 각각 문자열을 long, long long, double 타입으로 변환해 주는 간단하고 편리한 함수입니다. 다만 유효하지 않은 입력에 대해 단순히 0만 반환하기 때문에 세밀한 오류 처리가 필요한 경우에는 strtol(), strtoll(), strtod()처럼 에러 검출 기능을 제공하는 함수를 사용하는 것이 좋습니다.