Perdona que no haya mirado mucho el código, pero de entrada tienes un despiste mortal de necesidad, no has inicializado la variable i y a partir de ahí paré de mirar, sorry. Cuando pille más tiempo lo miraré más detalladamente.
Ufff mira lo que se me ha escapado lo correji pero sigue sin funcionar
Por que al hacerlo de esta forma corre de marravilla lo vi en otro foro
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define blanco(x) ((x) == ' ')
int repeticion(const char *frase, const char *palabra, const int cant);
int main()
{
char frase[] = "Hola como estas Hola como te va Hola amigo";
char palabra[] = "Hola";
int cant = strlen(palabra);
int veces = repeticion(frase, palabra, cant);
printf("La palabra Hola se repite %d veces", veces);
return 0;
}
int repeticion(const char *frase, const char *palabra, const int cant)
{
int i, j = 0;
while(*frase != '\0' ){
i = 0;
while(!blanco(*frase) && *frase != '\0'){
frase++;
i++;
}
if(i == cant && strncmp(frase - cant, palabra, cant)==0) j++;
if(*frase != '\0' )
frase++;
}
return j;
}
xiruko y daryo la verdad ya he probado mil forma ya se me acabaron las ideas
esto, esta por volverme loco
Saludos