-
[C++] 문자열(string) 자르기C++ 2023. 6. 16. 03:08
1. string::substr()을 이용한 방법
string substr (size_t pos = 0, size_t len = npos) const;
substr()은 문자 위치 pos에서 시작해서 len개의 문자까지 잘라서 리턴해준다.
len에 값을 입력하지 않으면 문자열의 마지막까지 잘라서 리턴해준다.
#include <iostream> #include <string> using namespace std; int main() { string str = "2023.06.16"; string year = str.substr(0, 4); string month = str.substr(5, 2); string day = str.substr(8); cout << year << endl; cout << month << endl; cout << day << endl; }
2023 06 16
이 방법으로 간단하게 문자열을 추출할 수 있지만, 자를 기준이 되는 인덱스를 일일이 입력해줘야 되는 단점이 있다.
인덱스가 아니라 구분자를 기준으로 추출하고 싶은 경우 다음의 방법을 사용할 수 있다.
2. istringstream과 getline()을 이용한 방법
istream& getline (istream& is, string& str, char delim); istream& getline (istream&& is, string& str, char delim); istream& getline (istream& is, string& str); istream& getline (istream&& is, string& str);
getline()은 입력 스트림 is에서 delim 혹은 '\n'이 발견될 때까지 문자를 추출하여 str에 저장한다.
#include <iostream> #include <string> #include <sstream> using namespace std; int main() { string str = "2023.06.16"; char separator = '.'; istringstream ss(str); string buf; while (getline(ss, buf, separator)) cout << buf << endl; }
2023 06 16
'C++' 카테고리의 다른 글
C++ 반복자(iterator), vector와 list의 반복자 비교 (0) 2021.10.18 [C++] 증감 연산자 오버로딩(전위 연산자, 후위 연산자) (0) 2019.09.04 [C++] this 포인터 (0) 2019.08.29 [C++] 함수 포인터 (0) 2019.08.27 [C++] Tuple (복수의 값 반환) (1) 2019.08.22