Informatică, întrebare adresată de mariamagdalena2269, 8 ani în urmă

Se dă un număr n, un cuvânt sir şi o listă de n cuvinte. Să se afle câte dintre cuvinte se potrivesc cu expresia regulară .+sir
(inlocuind sir cu valoarea citită de la tastatură).
Date de intrare
De pe prima linie se va citi numărul n. Următoarele n + 1 linii conțin fiecare câte un cuvânt format din litere mici ale alfabetului
englez.
Date de ieşire
Pe ecran se va afişa numărul de cuvinte care se potrivesc cu expresia regulară formată cu şirul citit, conform cerinţei.
Restricții
• 1 ≤ n ≤ 50
• cuvintele vor conține maxim 100 caractere fiecare.
Exemplu
Date de intrare
5
are
programare
imbunatatire
prezentare
are
intrebaree
Date de ieşire
2


mariamagdalena2269: In c++ am uitat sa mentionez :)
andrei750238: De ce rezultatul din exemplu e 2 >
andrei750238: Nu ar trebui sa fie 4 ? Sunt 4 aparitii ale lui "are"
programARE , imbunatatire, prezentARE, ARE, intrebAREe

Răspunsuri la întrebare

Răspuns de andrei750238
3

#include <iostream>

#include <fstream>

#include <string>

#include <regex>

using namespace std;

int main() {

int n, contor=0;

char sir[101];

char curent[101];

cin >> n;

cin >> sir;

regex rg = regex(sir);

for (int i = 0; i < n; i++) {

 cin >> curent;

 if (regex_search(curent, rg))

  ++contor;

}

cout << contor;

}

Alte întrebări interesante