본문 바로가기
프로그래밍/C & C++

C++ Tips & Tricks - String 편

by 리나그(ReenAG) 2021. 9. 1.
728x90
반응형

1. stringstream을 써보자.

가끔, cout으로 바로 아웃풋을 내기보다는 한번 string으로 저장하고 싶은 경우가 있을 수 있고, 그게 아니더라도 cout 쓰듯이 스트링을 빌드하고 싶은 때가 있다. "속도" 면에서 추천할 만한지는 모르겠지만, 간단하게 코드를 작성하고 싶다면 stringstream도 나쁜 선택은 아닌 것 같다.

 

아래는 res에서 각각의 글자사이에 ***를 넣은 스트링을 만들고 출력하는 코드이다. 마지막에도 ***가 붙는건 흠이지만...

#include<iostream>
#include<sstream>

using namespace std;

int main(){
    string res = "what";
    ostringstream oss;
    for(char c : res){
    	oss << c << "***";
    }
    cout << oss.str();
}

2. min_element와 max_element

일반적으로 이는 .begin(), .end()메서드를 가진 모든 배열에서 제일 작은 / 큰 요소를 찾아내는데 쓰이지만, string의 경우에도 사전 순으로 제일 작은 string이나, string중에서 제일 작은 ASCII값을 가진 char를 찾아내는데도 쓰일 있다.

 

다음은 codewars에서 가져온 코드이다.

#include <algorithm>
#include <string>

using namespace std;

std::string min(std::vector<std::string> s)
{
    return *min_element(s.begin(), s.end());
}

필요한 부분만 남기겨서 원본과는 달라졌지만, 아무튼 s 중에서 제일 사전적으로 작은 것을 가져올 수 있다.

728x90
반응형