/* Aprogram that finds out whether a given array appears as a sub array of
 * another given array
 */

#include <stdio.h>
int * find_sub_array(int * array, int size, int * sub_array, int sub_size);

int main()
{
  int array1[] =
    {1, 45, 67, 1001, -19, 67, 89, 1004, -867, 34, 3, -1900, 10029};
  int array2[] = {34, 3, -1900};
  int * position;
  position = find_sub_array(array1, sizeof (array1) / sizeof (int), 
                            array2, sizeof (array2) / sizeof(int));
  printf("array2 appears in array1 starting from place : %d.\n", 
         (position == NULL)? -1 : position - array1 + 1);
  return 0;
}

int * find_sub_array(int * array, int size, int * sub_array, int sub_size)
{
  int i, j;
  for (i = 0; i++ < size; ++array) {
    for (j = 0; j < sub_size; ++j)
      if ( *(array + j) != sub_array[j])
        break;
    if (j == sub_size)
      return array;
  }
  return NULL;
}
