Cod sursa(job #1292099)

Utilizator MariusGeantaMarius Geanta MariusGeanta Data 13 decembrie 2014 17:20:42
Problema Potrivirea sirurilor Scor 40
Compilator c Status done
Runda Arhiva educationala Marime 0.67 kb
#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;
}