이 자습서에서는 주어진 문자열에서 고유한 연도를 찾는 프로그램을 작성할 것입니다. 몇 가지 예를 살펴보겠습니다. 날짜 형식이 DD/MM/YYYY라고 가정합니다. .
입력 − 날짜가 2020년 1월 11일, 2020년 2월 12일, 2019년 3월 10일인 샘플 예
출력 - 2
주어진 텍스트에 2020년과 2019년이 따로 있습니다.
우리는 정규식을 사용하여 주어진 문자열에서 모든 날짜를 추출할 것입니다. C++의 정규식에 익숙하지 않다면 이 튜토리얼을 진행하세요.
문제 해결에 뛰어들자.
-
텍스트를 초기화합니다.
-
텍스트에서 날짜를 추출하는 정규식을 작성하십시오.
-
정렬되지 않은 빈 집합을 초기화합니다.
-
날짜를 반복하고 순서가 지정되지 않은 집합에 연도를 추가하여 고유한 연도를 찾습니다.
-
세트의 길이를 인쇄하십시오.
예시
코드를 봅시다.
#include <iostream> #include <bits/stdc++.h> #include <regex> using namespace std; int uniqueYearsCount(string text) { // regex regex date_regex("[0-9]{1,2}/[0-9]{1,2}/[0-9]{4}"); smatch matching_date; // set to store unique dates unordered_set<string> dates; // finding all dates while (regex_search(text, matching_date, date_regex)) { string date = matching_date[0]; dates.insert(date.substr(date.size() - 4)); text = matching_date.suffix(); } return dates.size(); } int main() { string text = "Sample example with dates 01/11/2020, 02/12/2020, and 03/10/2019."; cout << uniqueYearsCount(text) << endl; return 0; }
출력
위의 코드를 실행하면 다음과 같은 결과를 얻을 수 있습니다.
2
다른 형식으로 날짜를 가져올 수 있습니다. 날짜 형식이 다른 경우 정규식을 적절하게 업데이트하십시오.
결론
튜토리얼에서 질문이 있는 경우 댓글 섹션에 언급하세요.