cpp string function
include <string>
+타입 변환
stod(), stof(), stoi, stol, stold, stoll, stoul, stoull
double(8), float,
int(4), long(4 or 8),
long double(16) ,
long long(8), unsigned long, unsigned long long
format string: %f, %f,
%d, %ld,
%Lf,
%lld, %lu, %llu
double stod(const string &str, size_t *idx=0) ;
double stod(const wstring &str, size_t *idx=0) ;
스트링을 더블 타입으로 파싱하여 리턴한다.
idx가 주어지면, 숫자 파싱한 다음 처음 수가 아닌 문자의 위치 인덱스를 할당한다.
ex)
std::string orbits("365.24 29.53") ;
std::string::size_type sz ;
double earth = std::stod(orbits, &sz) ; // sz는 6. (공백위치)
double moon = std::stod(orbits.substr(sz)) ; // " 29.53"을 파싱.
long long stoll(const string& str, size_t* idx=0, int base=10) ; // wstring also.
base는 진법. 0이면 포맷에 따라 자동 판단.
std::string str="8245821 0xffff 020" ;
std::string::size_type sz=0 ;
while(!str.empty()) {
long long ll = std::stoll(str, &sz, 0) ;
str = str.substr(0, sz) ;
}
10진수, 16진수, 8진수로 판단 : 84245821, 65535, 16
int i_dec=std::stoi("2001,A Space", &sz) ; // 2001
int i_hex = std::stoi("40c3", nullptr, 16) ; // 16579
int i_bin = std::stoi("-10010110001", nullptr, 2) ; // -1201 ; 10010110001(2) = 1201
int i_auto = std::stoi("0x7f", nullptr, 0) ; // 127
++ 문자열로 변환
std::to_string, to_wstring
std::string pi = std::to_string(3.1415926) ;
++ getline
스트림에서 스트링으로 라인을 읽음.
istream& getline(istream& is, string& str, char delim) ; // (delim은 생략 가능)
is 스트림에서 문자열을 추출하여 str로 넘긴다. 딜리미터가 발견되거나 new line이나 파일 끝일 때까지.
delimiter가 발견되면, 딜리미터는 버린다.
#include <iostream>
#include <string>
std::string name ;
std::getline(std::cin, name) ;
++std::operator >> (string)
스트림에서 문자열을 추출한다.
std::cin >> name ;
std::cout << name ;
'Develop > C&CPP' 카테고리의 다른 글
algorithm 1. test, find, count, search, foreach (0) | 2018.06.01 |
---|---|
numeric: accumulate, adjacent_difference, inner_product, partial_sum (0) | 2018.06.01 |
string (0) | 2018.05.30 |
map (0) | 2018.05.29 |
List 1 (0) | 2018.05.28 |