Теперь понятно. Но только не знаю каким боком тут рекурсию приткнуть.
Вообще твои задачки не подходят под рекурсию. На пример в функции g нужно все время знать указатель на первый элемент второго массива (s2), то есть продвигать этот указатель в рекурсии нельзя. Вот если бы эта функция проверяла не только наличие всех символов первой строки во второй, но и порядок их следования тогда рекурсия как раз уместна. И можно было бы сделать примерно так:
Код:
int g(char* s1, char* s2)
{
if(!*s1 || !*s2)
return (*s1 - *s2);
if (*s1==*s2)
return g(++s1,s2);
else
return g(s1,++s2);
}