C++

    문자열 파싱 함수 - istringstream, ostringstream, stringstream

    오늘은 2021 카카오 블라인드 문제를 풀며 사용했던 문자열 파싱 함수 세 가지에 대해서 포스팅하려고 한다. 세 함수는 모두 sstream 헤더에 포함되어 있다. 1. istringstream string을 입력받아 다른 형식으로 바꿔주는 기능을 한다. 예제 코드를 보며 기능을 확인해보자. #include #include #include using namespace std; int main() { istringstream iss("test 123 aaa 456"); string s1, s2; int i1, i2; iss >> s1 >> i1 >> s2 >> i2; // 공백을 기준으로 문자열을 parsing하고, 변수 형식에 맞게 변환 cout

    문자 검색 함수 - strchr

    오늘 알고리즘 문제를 풀던 중, 문자 검색 함수인 strchr을 사용할 일이 생겨 관련 기능을 정리해보고자 포스팅을 올리게 되었다. #include // C++ 에서는 const char* strchr(const char* str, int character); char* strchr(char* str, int character); const char* 형이나 char*형 문자열 str 앞에서부터 문자 character를 찾고, 그 위치를 가리키는 포인터를 리턴한다. 마지막 NULL 문자도 검색이 가능하므로, 문자열의 끝을 가리키는 포인터를 얻기 위해 사용할 수도 있다. 예제 코드 1 - 문자열에서 특정 문자의 위치를 찾고 싶을 때 #include #include int main() { char test[..

    부분집합 판별 함수 - Includes

    알고리즘 문제를 풀면서 배열 간의 부분집합 여부를 판별해야 할 때가 있다. 그럴 때 사용할 수 있는 좋은 함수를 발견해서 한번 정리해보려고 한다. std::includes() 함수는 헤더에 있는 함수로, 원형은 아래와 같이 생겼다. template bool includes(InputIt1 first1, InputIt1 last1, InputIt2 first2, InputIt2 last2, Compare comp) { for (; first2 != last2; ++first1) { if (first1 == last1 || comp(*first2, *first1)) return false; if (!comp(*first1, *first2)) ++first2; } return true; } 이 함수는 4개의 ..