rendered paste body/* probably suboptimal */
int measureit(char *string, char *seq)
{
int i;
for(i = 0; *string && *seq; string++, i++)
{
if(*string == *seq)
{
*seq++;
if(!*seq) return i + 1;
}
}
return -1;
}
int findit(char *string, char *seq)
{
int best = 0x7fffffff;
int bestpos = -1;
int i;
for(i = 0; string[i]; i++)
{
int l = measureit(string + i, seq);
if(l < best && l >= 0)
{
bestpos = i;
best = l;
}
}
return bestpos;
}
main()
{
char buf[1024];
char pattern[1024];
printf("enter buffer: ");
scanf("%s", buf);
printf("enter pattern: ");
scanf("%s", pattern);
printf("smallest substring containing entire sequence is at pos %i\n", findit(buf, pattern));
}