Pagini recente » Cod sursa (job #894056) | Cod sursa (job #2433182) | Cod sursa (job #236430) | Cod sursa (job #2813814) | Cod sursa (job #1774067)
//Se dau doua siruri A si B formate din litere mici si mari ale alfabetului englez si din cifre. Se cere gasirea tuturor aparitiilor sirului A ca subsecventa a sirului B.
#include <iostream>
#include <fstream>
#include <string.h>
char x[2000000],y[2000000];
long int kx,ky,g,gasiri,pozitii[200];
using namespace std;
int main()
{
ifstream a("strmatch.in");
ofstream b("strmatch.out");
a.getline(x,2000000);
a.getline(y,2000000);
ky=strlen(y);
kx=strlen(x);
gasiri=0;
for(int i=0;i<(ky-kx);i++)
{
g=0;
for(int j=0;j<kx;j++)
{
if(x[j]==y[i+j])
g+=1;
}
if(g==kx)
{
gasiri+=1;
pozitii[gasiri]=i;
}
}
b<<gasiri<<"\n";
for(int i=1;i<=gasiri;i++)
b<<pozitii[i]<<' ';
}