Pagini recente » Cod sursa (job #2263677) | Cod sursa (job #3916) | Cod sursa (job #2572774) | Cod sursa (job #2826728) | Cod sursa (job #999019)
Cod sursa(job #999019)
#include<fstream>
#include<string>
using namespace std;
bool potrivite(int i,int b);
string sir,subsir;
int main(){
ifstream inFile("strmatch.in");
getline(inFile,subsir);
getline(inFile,sir);
ofstream outFile;
outFile.open("strmatch.out");
int a,b;
a=sir.size()-1;
b=subsir.size()-1;
int pozitii[1001];
int N=0;
for(int i=0;i<=a-b;i++){
if(sir[i]==subsir[0] && sir[i+b]==subsir[b]){
if(potrivite(i,b)){
N++;
pozitii[N]=i;
}
}
}
if(N>1000) N=1000;
outFile<<N<<"\n";
for(int i=1;i<=N;i++) outFile<<pozitii[i]<<" ";
/* outFile<<endl<<potrivite(6,3)<<endl;
outFile<<sir<<endl;
outFile<<subsir<<endl;
outFile<<a<<" "<<b;
*/
}
bool potrivite(int i,int b){
bool t=true;
for(int j=0;j<=b;j++) if(subsir[j]!=sir[i+j]) t=false;
return t;
}