gpt4 book ai didi

c++ - 我试图在从文件输入的字符串中查找年份

转载 作者:行者123 更新时间:2023-11-28 05:12:40 25 4
gpt4 key购买 nike

所以我正在处理的部分任务是我必须弄清楚居民是否到了退休年龄。我正在从一个文件中获取一个字符串,现在我只需要找到年份。问题是,我不知道该怎么做。

这是目前的代码

#include <iostream>
#include <fstream>
#include <string>

using namespace std;

int main(){
ifstream oldretire;
string names;
oldretire.open("oldretirement.txt");
getline(oldretire, names);
names find(
}

这是一个示例字符串

马修·艾伦·阿贝雷格 1963 年 452,627

我想我需要使用 find 函数来查找一个包含一个空格、四个字符,然后是另一个空格的字符串。但随后奥兰德就会被发现。

如有任何帮助,我们将不胜感激!

最佳答案

使用 <regex> (C++11)。图案

\\b([0-9]{4})\\b

将匹配任何四位数字。如果只找最近的年份,下面的模式只匹配十九百两千

\\b(19|20)([0-9]{2})\\b

Demo

#include <iostream>
#include <string>
#include <regex>

int find_year(std::string line, unsigned index = 0)
{
std::smatch match;
std::regex expr("\\b([0-9]{4})\\b"); // matches any four digit number

if ( std::regex_search(line,match,expr) )
return std::stoi(match[index]);
else
throw std::invalid_argument("No number matching a year found!");
}

int main()
{
int year = find_year("Matthew Alan Aberegg 1963 452,627");
std::cout << year << "\n";
}

关于c++ - 我试图在从文件输入的字符串中查找年份,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43220320/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com