c++ string 테크닉 정리

개요

다른 언어들과 다르게 c++의 string은 다양한 기능들이 있고 또 split처럼 아예 없는 기능들도 있다. 코딩테스트를 위해 필요한 부분들을 정리해봐야겠다.

Split

c++에서 string은 split기능이 없다. 따라서 다음과 같이 함수를 만들어 놓는 것이 좋다.

sstream을 include 해주어야 한다.

// 사실상 input을 stream으로 만들어 getline으로 끊어준 방법이다. 
#include <sstream>
vector<string> split(string input, char delimiter){
	vector<string> ans;
    stringstream ss(input);
    string temp;
    while(getline(ss, temp, delimiter)){
   		ans.push_back(temp);
    }
    return ans;
}

substr

string을 원하는 부분만큼 짜른 부분은 return하는 string의 내장함수이다.

string.substr(시작 위치 index, 이후 몇개를 가져올 것인지 = 끝까지)
// 즉 index부터 시작하여 이후 몇개를 가져올 지에 대한 함수이다. 
// 두번째 parameter의 default값은 string의 끝까지 다이다
string str = "abcde";
str.substr(1,2); // bc 가져옴
str.substr(1); //bcde가져옴

to_string

숫자나 모든 다른 type을 string으로 바꿔줌

int number = 1234;
string tmp = to_string(number); /// tmp 는 "1234"가 됌

erase

문자열을 지워주는 함수. 사실상 substr이랑 paramter내부는 ㄴ같다

string.erase(시작 위치 index, 이후 몇개를 삭제할지 = 끝까지);
// 첫번째 index부터 얼마나 문자열을 지울지에대한 함수이다. 

transform

문자열 내부에 소문자나 대문자를 바꿔줌

// str내부에 소문자들을 다 대문자로 바꿔줌
transform(str.begin(), str.end(), ::toupper);
//str내부에 대문자들을 다 소문자로 바꿔줌
transform(str.begin(), str.end(), ::tolower);

좋은 웹페이지 즐겨찾기