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

Ai rezolvat problema anterioară rapid și i-ai explicat fratelui tău expresiile regulare. După ce a înțeles că expresia POSIX ana.+ se potrivește de fapt cu toate cuvintele care îl conțin pe ana ca și prefix și mai conțin cel puțin un caracter în plus, i-ai dat o problemă pe care să o rezolve singur.

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 (înlocuind 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.

Date de intrare
5
are
programare
imbunatatire
prezentare
are
intrebaree

Date de iesire

2
Limbaj C++

Răspunsuri la întrebare

Răspuns de Levi20
0

#include<iostream>

#include<cstring>

using namespace std;

int main()

{

int n,nr=0;

char sir[50],s[50];

cin>>n;

cin.ignore();

cin.getline(sir,50);

int m=strlen(sir);

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

{

cin.getline(s,50);

int k=strlen(s);

if(m<k && strcmp(s+k-m,sir)==0)

nr++;

}

cout<<nr;

return 0;

}


claudianastasiu: Buna, nu functioneaza pe toate cazurile :(
Levi20: Problema e de pe pbinfo? Daca da îmi poți da numărul ei...
Levi20: In caz contrar mi-ai putea da un ex pentru care nu ar funcționa?
Alte întrebări interesante