在 C++ 程式中查詢字串中不同年份的總數
在本教程中,我們將編寫一個程式來查詢給定字串中不同的年份。讓我們看一些例子。我們假設日期格式為 **DD/MM/YYYY**。
**輸入** - 包含日期 01/11/2020、02/12/2020 和 03/10/2019 的示例。
**輸出** - 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
我們可以以不同的格式獲取日期。如果以不同的格式獲取日期,請相應地更新正則表示式。
結論
如果您在本教程中遇到任何疑問,請在評論部分提出。
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP