Pagini recente » preONI 2005 runda #2 - solutii | Cod sursa (job #754985) | Cod sursa (job #561284) | Cod sursa (job #1615066) | Cod sursa (job #1292099)
#include <stdio.h>
#include <stdlib.h>
int pos[1000];
int basicSearch(char *pattern, char *str, int pos[])
{
char *p;
int len = strlen(pattern);
int lenStr = strlen(str);
int num = 0;
for (p = str; p - str <= lenStr - len + 1; p++) {
if (!strncmp(p, pattern, len) && num < 1000) {
pos[num++] = p - str;
}
}
return num;
}
int main()
{
char *pattern;
char *str;
int n, i;
freopen("strmatch.in", "r", stdin);
freopen("strmatch.out", "w", stdout);
pattern = malloc(2000000);
str = malloc(2000000);
scanf("%s", pattern);
scanf("%s", str);
n = basicSearch(pattern, str, pos);
printf("%d\n", n);
for (i = 0; i < n; i++)
printf("%d ", pos[i]);
return 0;
}