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));
}