djrony: 
 
- Si, efectivamente, la función que publique no es recursiva, es iterativa, la publique así porque no se me ocurría hacerla recursiva. 
- Si, era necesario que fuera recursiva. 
- Desconocía la función strtok, llevo poco tiempo aprendiendo a programar y la función strchr fue lo único que encontré para poder hacer este código, aun así gracias por el dato. 
CalgaryCorpus: 
- En principio no me preocupaba el hecho de que contara los espacios en blanco como palabras, solo me centraba en la recursividad.   
Alguien me ha ayudado con el código y parece que funciona. 
Saludos.     
Código C:
Ver original- #include <stdio.h> 
- #include <stdlib.h> 
-   
- int main() 
- { 
-   
- int cont; 
-   
-   char cadena[80]; 
-    
-    
-    
-   printf("\n\nHay %d Palabras \n\n",-  NumPalabras (- cadena ));
 
-   
-    
-   return 0; 
- } 
-   
-   
-   
-   
- int NumPalabras(char* cadena) 
- { 
-        static int cont = 1; 
-        if(*cadena == '\0') return 0; 
-        if(*cadena == ' ') cont = 1;  
-        if(*cadena != ' ' && cont == 1){  
-            cont = 0; 
-            return 1 + NumPalabras((++cadena));} 
-        else  return 0 + NumPalabras((++cadena));    
- }