Pagini recente » Cod sursa (job #1941787) | Cod sursa (job #1412761) | Cod sursa (job #2740884) | Cod sursa (job #519051) | Cod sursa (job #2605212)
#include <stdio.h>
#include <malloc.h>
#include <cstring>
using namespace std;
int check(const char* t, const char* b, int n) {
for (int i = 0;i < n;i ++)
if (t[i] != b[i])
return 0;
return 1;
}
int main() {
FILE* fin = fopen("strmatch.in", "rt");
FILE* fout = fopen("strmatch.out", "wt");
int counter = 0;
char* A = (char*) malloc(2000000);
char* B = (char*) malloc(2000000);
char* temp = (char*) malloc(2000000);
int v[1000];
int k = 0;
fscanf(fin ,"%s", A);
fscanf(fin ,"%s", B);
int len1 = strlen(A);
int len2 = strlen(B);
for (int i = 0;i <= len2 - len1;i ++) {
for (int k = i;k <= len1 + i - 1;k ++)
temp[k - i] = B[k];
if (check(temp, A, len1)) {
counter ++;
if (k < 1000)
v[k ++] = i;
}
}
fprintf(fout, "%d\n", counter);
for (int i = 0;i < k;i ++)
fprintf(fout, "%d ",v[i]);
free(A);
free(B);
free(temp);
fclose(fin);
fclose(fout);
return 0;
}