Grazie Andrea.
Io ho provato a fare il programma anche senza funzioni di libreria
in questo modo:
codice:
#include <iostream.h>
#include <stdlib.h>
#include <stdio.h>


int main()
{ char s[100],t[100];
  int i,j,cont,again,pos,POS[100];
 gets (s);
 fflush(stdin);
 gets (t);
i=0; j=0; cont=0;
 while ((s[i]!='\0')&& (t[j]!='\0'))
 { 
       
       if(s[i]==t[j])
       {  again=again+1;       
                     do{
                     i++;
                     j++;
                    }while ((s[i]!='\0')&&(t[j]!='\0') && (s[i]==t[j]));
                if (s[i]=='\0')
                {cont=cont+1;
                 i=0;
                 POS[cont]=j-1;
                } 
                else
                {j=again;
                 i=0;
                 }
       }
       else {
        j++;
       }

 }
  cout <<"Numero di volte contenuta  " <<cont <<endl; 
 cout <<"Ecco le posizioni" <<endl;
 for (i=0;i<=cont;i++)
 { cout<<POS[i];
 
  } 



      system("PAUSE");
      return 0;
}
Che te ne pare?
Ma se ad esempio gli do la stringa s Ciao e la stringa t CCiao
mi dice che è contenuta zero volte.
p.s. gets fa parte del c o del c++?