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
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 :(
Alte întrebări interesante
Engleza,
8 ani în urmă
Istorie,
8 ani în urmă
Limba română,
8 ani în urmă
Limba română,
8 ani în urmă
Matematică,
9 ani în urmă
Limba română,
9 ani în urmă