Pagini recente » Cod sursa (job #3036382) | Cod sursa (job #2865399) | Cod sursa (job #149210) | Cod sursa (job #1157681) | Cod sursa (job #1582308)
#include <iostream>
#include <fstream>
#include <string>
#include <string.h>
using namespace std;
char a[2000000],b[2000000];
void citire()
{
fstream f("fisier.in",ios::in);
f.getline(a,2000000,'\n');
f.getline(b,2000000,'\n');
f.close();
}
void kmp()
{int i,j,x=0,k,v[100];
i=0;j=0;k=0;
fstream g("strmatch.out",ios::out);
while(j<=strlen(b))
{if(b[j+i]==a[i])
i++;
else
{j++;
i=0;
}
if((i==strlen(a)-1)&&(b[j+i]==a[i]))
{x++;k++;v[k]=j;j=j+i;i=0;}
}
g<<x;
cout<<x<<endl;
for(i=1;i<=k;i++)
cout<<v[i]<<" ";
}
int main()
{
citire();
kmp();
}