C++에서는 숫자로 이루어진 문자열을 정수(int) 타입의 데이터로 변환해야 하는 경우가 자주 발생합니다. 이 문제는 표준 라이브러리에서 제공하는 atoi() 함수를 사용하면 간단하게 해결할 수 있습니다.
atoi() 함수는 문자열을 입력으로 받아 정수 데이터로 변환하는 역할을 합니다. 함수 이름의 'atoi'는 'ASCII to Integer'를 의미하며, 문자 형태로 표현된 숫자를 실제 정수 값으로 바꿔줍니다.
이 함수는 <cstdlib> 헤더 파일에 선언되어 있으므로, 사용하기 전에 반드시 해당 헤더를 포함해야 합니다.
동작 예시
입력: 숫자 문자열 "1234" 출력: 1234
알고리즘
1단계: 숫자로 구성된 문자열을 준비한다 2단계: atoi() 함수를 사용하여 문자열을 정수로 변환한다 3단계: 변환된 결과를 출력한다 4단계: 종료한다
예제 코드
#include<iostream>
#include<cstdlib>
using namespace std;
int main() {
int n;
char num_string[20] = "1234";
n = atoi(num_string);
cout << n;
return 0;
}
실행 결과
1234
추가 참고 사항
atoi() 함수는 간편하지만 몇 가지 주의할 점이 있습니다. 변환에 실패하면 0을 반환하기 때문에, 입력값이 실제로 0인 경우와 변환 실패를 구분할 수 없습니다. 또한 유효하지 않은 입력에 대한 오류 처리 기능이 없습니다.
보다 안전한 예외 처리와 오류 검출이 필요하다면 C++11부터 도입된 stoi() 함수를 사용하는 것이 좋습니다. stoi()는 <string> 헤더에 정의되어 있으며, std::string 타입을 직접 다룰 수 있고 변환 실패 시 예외를 발생시켜 더욱 견고한 코드 작성이 가능합니다.