입력받은 문자열 기반으로 문자형 타입이 숫자의 형식을 가지고 있는지 판별할 필요가 있다.
함수 `atoi`는 C++에서 C 언어의 표준 라이브러리 함수로서, 문자열을 정수로 변환하는 역할을 합니다. C++에서 `atoi` 함수를 사용하려면 `<cstdlib>` 헤더 파일을 포함해야 합니다.
`atoi` 함수의 시그니처는 다음과 같습니다:
int atoi(const char* str);
- 반환값: `atoi` 함수는 변환된 정수 값을 반환합니다. 문자열이 유효한 정수로 변환되지 않을 경우 0을 반환합니다.
- 파라미터 종류: `atoi` 함수는 단일 파라미터로 문자열의 포인터(`const char*`)를 받습니다. 이 문자열은 정수로 변환될 수 있는 형태여야 합니다.
주의할 점은 `atoi` 함수는 변환할 수 없는 문자열이 주어지면 0을 반환하기 때문에, 오류 처리를 위해 다른 방법을 사용해야 할 수도 있습니다. C++에서는 `std::stoi`나 `std::stringstream`과 같은 대안을 사용하여 문자열을 안전하게 정수로 변환하는 것이 좋습니다.
예를 들어, `std::stoi`를 사용하여 문자열을 정수로 변환하는 방법은 다음과 같습니다:
#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::stoi` 함수를 사용하여 `str` 문자열을 정수로 변환하고, 변환된 값을 `num` 변수에 저장하였습니다.
`std::stoi` 함수는 문자열이 아닌 경우 `std::invalid_argument` 예외를 발생시킵니다. 따라서 이 예외를 처리하여 오류를 다룰 수 있습니다. 예외 처리를 위해 `try-catch` 블록을 사용할 수 있습니다.
다음은 `std::stoi`를 사용하여 문자열을 정수로 변환하고 예외를 처리하는 예제입니다:
#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::stoi` 함수를 `try` 블록 내에서 호출하고, 변환된 값을 `num` 변수에 저장합니다.
만약 변환할 수 없는 문자열이 주어지면 `std::invalid_argument` 예외가 발생하고,
`catch` 블록에서 해당 예외를 처리합니다. `std::out_of_range` 예외는 변환된 정수 값이 범위를 초과할 경우 발생할 수 있습니다.
'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 |
댓글