Loading [MathJax]/jax/output/CommonHTML/jax.js
본문 바로가기
C++

문자열 숫자 변환

by oncerun 2023. 6. 24.
반응형

 

 

입력받은 문자열 기반으로 문자형 타입이 숫자의 형식을 가지고 있는지 판별할 필요가 있다.

 

함수 ai는 C++에서 C 언어의 표준 라이브러리 함수로서, 문자열을 정수로 변환하는 역할을 합니다. C++에서 ai 함수를 사용하려면 <cstdlib> 헤더 파일을 포함해야 합니다.

ai 함수의 시그니처는 다음과 같습니다:

int atoi(const char* str);



- 반환값: ai 함수는 변환된 정수 값을 반환합니다. 문자열이 유효한 정수로 변환되지 않을 경우 0을 반환합니다.
- 파라미터 종류: ai 함수는 단일 파라미터로 문자열의 포인터(const char)를 받습니다. 이 문자열은 정수로 변환될 수 있는 형태여야 합니다.

주의할 점은 ai 함수는 변환할 수 없는 문자열이 주어지면 0을 반환하기 때문에, 오류 처리를 위해 다른 방법을 사용해야 할 수도 있습니다. C++에서는 std::si나 std::strgstream과 같은 대안을 사용하여 문자열을 안전하게 정수로 변환하는 것이 좋습니다.

예를 들어, std::si를 사용하여 문자열을 정수로 변환하는 방법은 다음과 같습니다:


#include <iostream>
#include <string>

int main() {
    std::string str = "12345";
    int num = std::stoi(str);
    std::cout << "Converted integer: " << num << std::endl;
    return 0;
}



위의 예제에서는 std::si 함수를 사용하여 str 문자열을 정수로 변환하고, 변환된 값을 νm 변수에 저장하였습니다.

 

std::si 함수는 문자열이 아닌 경우 std::validargument 예외를 발생시킵니다. 따라서 이 예외를 처리하여 오류를 다룰 수 있습니다. 예외 처리를 위해 try-catch 블록을 사용할 수 있습니다.

다음은 std::si를 사용하여 문자열을 정수로 변환하고 예외를 처리하는 예제입니다:


#include <iostream>
#include <string>
#include <stdexcept>

int main() {
    std::string str = "12345";

    try {
        int num = std::stoi(str);
        std::cout << "Converted integer: " << num << std::endl;
    } catch (const std::invalid_argument& e) {
        std::cout << "Invalid argument: " << e.what() << std::endl;
    } catch (const std::out_of_range& e) {
        std::cout << "Out of range: " << e.what() << std::endl;
    }

    return 0;
}



위의 예제에서는 std::si 함수를 try 블록 내에서 호출하고, 변환된 값을 νm 변수에 저장합니다.

 

 만약 변환할 수 없는 문자열이 주어지면 std::validargument 예외가 발생하고, 

 

catch 블록에서 해당 예외를 처리합니다. std::outofran 예외는 변환된 정수 값이 범위를 초과할 경우 발생할 수 있습니다.


반응형

'C++' 카테고리의 다른 글

sort func ex1  (0) 2023.06.25
pair, tuple  (0) 2023.06.24
STL  (0) 2023.06.23
템플릿  (0) 2020.11.12
추상 클래스  (0) 2020.11.12