ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [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
Designed by Tistory.