在 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