일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- SQL
- C++
- SW봉사
- 코틀린
- 소프티어
- 백준
- python
- 1과목
- 정보처리산업기사
- 알고리즘
- kotlin
- BFS
- java
- 백준알고리즘
- programmers
- MYSQL
- 공부일지
- 프로그래머스
- 스프링
- 코딩봉사
- 회고
- 코딩교육봉사
- 자바
- 문제풀이
- 데이터베이스
- 파이썬
- softeer
- 백준 알고리즘
- 시나공
- CJ UNIT
Archives
- Today
- Total
JIE0025
[ C++ ] 문자열을 숫자로 (stoi, stof, stol, stod) 본문
728x90
string 클래스를 숫자로 변경해주는 함수가 있다.
(C++ 11부터 사용가능)
가장 많이 사용하는 string to 어쩌구는 바로 아래의 네개!
stoi : string to int
stof : string to float
stol : string to long
stod : string to double
int stoi (const string &str, size_t* idx = 0 , int base = 10);
const string &str : 변경할 문자열 >> 문자열 복사 비용 안들도록 &이용, 함수 내부에서 변경 불가능 하도록 const사용)
size_t* idx = 0 : 숫자가 아닌부분까지 포인터를 걸러준다는 친구... >> 문자열에 숫자만 있다는 보장이 없고, 문자로 인해 숫자가 끊겨있을 것을 대비한 것 같다. int base =10 : 10진수라는 뜻 >> 다른 진수 사용하고 싶으면 설정하면 된다.
string ss 에 만약 "0x32" 가 있었을 경우 16으로 바꿔주면 됨!
stoi(ss, nullptr, 16);
예제
#include<iostream>
#include<string>
using namespace std;
int main() {
string s_i = "111";
string s_l = "1122334455";
string s_f = "3.14";
string s_d = "5.5555";
int i = stoi(s_i);
long int li = stol(s_l);
float f = stof(s_f);
double d = stod(s_d);
//cout << i << endl;
//cout << li << endl;
//cout << f << endl;
//cout << d << endl;
string s1 = "11DataTest22";
int n1 = stoi(s1);
cout << n1 << endl; //11
size_t size;
int n2 = stoi(s1, &size);
cout << n1 << endl; //11
cout << s1[size] << endl; //D
cout << s1.substr(size) << endl; //DataTest
string s_2 = "1111";
int n_2 = stoi(s_2, nullptr, 2);
cout << n_2 << endl; //15
string s_16 = "0x14";
int n_16 = stoi(s_16, nullptr, 16);
cout << n_16 << endl; //20
return 0;
}
'기타 학습 > Language' 카테고리의 다른 글
[ C++ ] 삼각형의 성립 조건 (0) | 2022.05.20 |
---|---|
[ C++ ] 충돌 알고리즘 (0) | 2022.05.20 |
[ C++ ] 문자열 치환 replace, regex_replace (0) | 2022.05.19 |
[ C++ ] 동적 할당 깊이 파기 (구조 이해) (0) | 2022.05.18 |
[ c++ ] cmath 라이브러리 (0) | 2022.05.17 |