Pagini recente » Cod sursa (job #388643) | Cod sursa (job #637675) | Cod sursa (job #2698914) | Cod sursa (job #274945) | Cod sursa (job #536718)
Cod sursa(job #536718)
#include<fstream.h>
#include<string.h>
ifstream f("strmatch.in");
ofstream g("strmatch.out");
char a[2000001], b[2000001],c;
int nr,p,na,nb,poz[1001],ii;
int main()
{
int i,j;
f>>a>>b;c=a[0];
i=j=0;na=strlen(a);nb=strlen(b)-na+1;
//g<<na<<' '<<nb<<'\n';
while(j<nb)
{
i=0;
while(a[i]==b[j]&&i<na)
{i++; j++;
if(c==b[j]&&!p) p=j;
}
if(i==na)
{nr++;
if(nr<1001) poz[nr]=j-na;
}
if(p) j=p,i=p=0;
else if(i==0) j++;
}
/*while(c)
{nr++;
if(nr<1001) poz[nr]=c-b;
c++;
c=strstr(c,a);
}*/
g<<nr<<'\n';
if(nr<1001) for(int i=1;i<=nr;i++) g<<poz[i]<<' ';
else for(int i=1;i<1001;i++) g<<poz[i]<<' ';
g<<'\n';
f.close(); g.close();
return 0;
}