본문 바로가기
알고리즘/정보

문자열 자르기

by jissi 2019. 11. 22.

코딩테스트 문제를 풀때마다 여기서는 이거, 이런식으로 패턴화(?)된 부분들을 정리 좀 해놓으려고 한다.

시작은 문자열 자르기(더블릿, 백준, 프로그래머스에서 주로 문제를 푸는데 프로그래머스 문제들에서 자주 사용하는거 같다.)

 

getline()

ex) string s = {010-1234-6543, 010-5678-1234,010-0000-0000} 을 ,단위로 분리하기

#include <iostream>
#include <string>
#include <vector>
#include <sstream>

using namespace std;
 
int main()
{
        string str = "{010-1234-6543,010-5678-1234,010-0000-0000}";
        str = str.substr(1,str.length() - 2); //{, } 제거
        stringstream ss(str);
        vector<string> phoneNums;
        string s;
        while (getline(ss, s, ','))
        {
               cout << s << endl;
               phoneNums.push_back(s);
        }
 
        for (string i : phoneNums)
        {
               cout << i << endl;
        }
    	return 0;
}

 

 

string을 char * 로 변경해서 strtok()를 쓸수도 있지만 내가 느끼기엔 getline 함수 사용이 훨씬 직관적이고 쉽다고 생각해서 getline을 사용한다.

'알고리즘 > 정보' 카테고리의 다른 글

해싱(map,set)  (0) 2020.01.21
parametric search  (0) 2019.11.14

댓글