Computer >> 컴퓨터 >  >> 프로그래밍 >> C++

C++에서 숫자 문자열을 정수로 변환하는 방법


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 타입을 직접 다룰 수 있고 변환 실패 시 예외를 발생시켜 더욱 견고한 코드 작성이 가능합니다.