Ciao,
ho finito di leggere la strstr e a quanto pare sembra funzionarmi (il programma viene compilato ed eseguito senza probemi) , solo che non ho capito una cosa: cosa devo scrivere per far incrementare il tot2 a seconda delnumero di volte in cui la parola compare nella stringa?
codice:
//Numero di parole uguali in una frase
#include <stdio.h> 
#include <string.h> 
int main() 
{ 
   char parola [25];
   char frase [500];
   int cnt, tot1=0, tot2=0; //cnt serve da contatore, tot1 indica il numero totale di parole mentra tot2 indica il numero di parole uguali
   printf("Scrivi una parola: \n");
   scanf("%s", &parola);
   while(getchar()!='\n');
   printf("Scrivi una frase: \n");
   fgets(frase, 500, stdin); //La funzione fgets() legge una linea dallo stream immagazzinandola nel buffer puntato da s
   for (cnt = 0; cnt < strlen(frase); cnt++) //strlen() - calcola la lunghezza di una stringa 
   {
     if(frase[cnt] ==' ')
     tot1++;
   }
   //La funzione strstr serve per verificare se esiste una sottostringa all'interno della stringa di partenza. 
   //La sua sintassi è char *strstr(const char *haystack, const char *needle);
   //Dove haystack (lett. 'pagliaio') è la stringa all'interno della quale cercare,
   //Mentre needle (lett.'ago') è la stringa da cercare. 
   
   //La funzione ritorna:
   //1)Un puntatore intero, che rappresenta la zona di memoria in cui è stata trovatala sottostringa, nel caso in cui la sottostringa dovesse essere trovata;
   //2)NULL nel caso in cui la sottostringa non dovesse essere trovata.
   if (strstr(frase,parola)) // Equivale a scrivere if (strstr(s1,s2) != 0) ovvero se il valore di ritorno della funzione non è NULL (cioè che ha trvato qualcosa)
   {
        printf ("Stringa \"%s\" trovata all'interno di \"%s\", inposizione %d\n",parola,frase,(strstr(frase,parola)-frase));
        tot2++;
   } 
     else //Entra nell'else se il valore di ritorno della funzione è NULL (cioè che non ha trovato niente)
        printf ("Stringa \"%s\" non trovata ““all'interno di \"%s\"\n",parola,frase);
   printf("\nIl numero totale di parole presenti nella frase sono %d e di '%s' cene sono: %d",  tot1, parola, tot2);         
   printf("\n\n"); 
   system ("pause");
   return 0;
}
Ciao e grazie