728x90
숫자처럼 생긴 문자열을 숫자로 바꿔야 할 때가 있다. 아니면 숫자를 문자열로 바꿔야 할 때도 있을 수 있다.
그럴 때 쓰는 것이 stoi, stof, stol, stod, stold, stoll 함수이다.
이 함수들은 string 클래스에 정의되어 있기 때문에 이 함수들을 사용하려면 <string> 헤더파일을 포함해야 한다.
+stoi(s: string): int | 문자열을 int로 바꾼다 |
+stol(s: string): long | 문자열을 long으로 바꾼다. |
+stof(s: string): float | 문자열을 float로 바꾼다. |
+stod(s: string): double | 문자열을 double로 바꾼다. |
+stold(s: string): long double | 문자열을 long double로 바꾼다. |
+stoll(s: string): long long | 문자열을 long long으로 바꾼다. |
#include <iostream>
#include <string>
using namespace std;
int main() {
string s = "100";
int a = stoi(s); //문자열 s를 정수형으로 바꿈
cout << a + 45 << endl;
return 0;
}
문자열일 때에는 정수와 더하기가 불가능했는데 int형으로 바꾸니 더하기가 멀쩡하게 되는 것을 볼 수 있다.
그렇다면 char형을 정수로 바꾸고 싶다면?
char형은 정수이기 때문에 0의 아스키코드인 48을 빼주면 된다. 0의 아스키코드를 기억하기 힘들다면 '0'을 빼주면 된다.
#include <iostream>
using namespace std;
int main() {
char c = '9';
int a = c - '0';
cout << a + 10 << endl;
return 0;
}
728x90
'C++' 카테고리의 다른 글
[C++] next_permutation 이용해서 순열 구하기 (0) | 2020.02.19 |
---|---|
[C++] 포인터 없이 map으로 이진트리 구현하기, 전위, 중위, 후위순회 (0) | 2020.02.18 |
[C++] 이진탐색 binary_search, upper_bound, lower_bound 함수 사용법 (0) | 2020.02.14 |
[C++] 스트림 조종자 (출력 형식, 소수점 반올림, 16진수, 8진수 출력, 소수점 표기, 줄 맞추기) (1) | 2020.02.12 |
비주얼 스튜디오 실행창 바로 꺼질 때 해결 방법 (0) | 2020.02.11 |