C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C++プログラムの文字列から個別の年の総数を検索します


このチュートリアルでは、指定された文字列で明確な年を見つけるプログラムを作成します。いくつかの例を見てみましょう。日付形式はDD/ MM / YYYYであると想定しています。 。

入力 −日付が2020年1月11日、2020年2月12日、2019年3月10日のサンプル例。

出力 − 2

与えられたテキスト2020と2019には2つの異なる年があります。

正規表現を使用して、指定された文字列からすべての日付を抽出します。 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

さまざまな形式で日付を取得できます。さまざまな形式の日付を取得する場合は、正規表現を適切に更新してください。

結論

チュートリアルに質問がある場合は、コメントセクションにそのことを記載してください。


  1. C++でN番目の偶数フィボナッチ数を見つけるプログラム

    この問題では、整数値Nが与えられます。私たちのタスクはN番目の偶数フィボナッチ数を見つけることです。 。 フィボナッチ数列は、前の2つの数値を加算することにより、後続の数値を生成します。フィボナッチ数列は、F0とF1の2つの数字から始まります。 F0とF1の初期値は、それぞれ0、1、または1、1にすることができます。 問題を理解するために例を見てみましょう Input : N = 4 Output : 144 ソリューションアプローチ この問題の簡単な解決策は、フィボナッチ数列の3つおきの数が偶数であり、偶数の数列も再帰式に従うという事実を使用することです。 フィボナッチ数列の再帰式

  2. C++を使用して文字列の部分文字列の数を見つける

    この記事では、特定の文字列に形成できるサブ文字列(空ではない)の数を見つけるためのアプローチについて学習します。 Input : string = “moon” Output : 10 Explanation: Substrings are ‘m’, ‘o’, ‘o’, ‘n’, ‘mo’, ‘oo’, ‘on’, ‘moo’, ‘oon’ and &