al querer compilar me sale un error de tipo de dato..pero no se porque si tendria que coincidar...
el codigo es:
Código: Seleccionar todo
/* Ejercicio #34 -lenguaje 1
Prepare una funcion que retorne la cantidad de ocurrencias de una determinada
palabra dentro de un parrafo. El prototipo de la funcion es el siguiente:
FUNCTION CantOcur(parrafo, palabra : Cad40) : Integer;
Donde Cad40 es un tipo de datos definido como string[40]
*/
#include <stdio.h>
#include <string.h>
#define N 40
//funcion longitud de cadena. Determina la longitud de la cadena ingresada
int longitud_cadena(char *x)
{
//declarar las variables locales a la funcion longitud_cadena
int i;
i = 0;
while( x[i] != '\0')
{
i = i + 1;
}
return(i);
}
//funcion para saber cuantas veces se repite una palabra en un parrafo
int CantOcur(char *parrafo, char *palabra)
{
//declarar las variables locales de la funcion CantOcur
int i, c = 0;
char pal[N];
strncpy(pal,"",1);
for( i = 0; i < longitud_cadena(parrafo); i++)
{
if(palabra[i] != ' ')
{
pal = pal + palabra[i];
}
else if(strcmp(palabra,pal) == 0)
{
c = c + 1;
strncpy(pal,"",1);
}
else
{
strncpy(pal,"",1);
}
}
if( (strcmp(palabra,pal) == 0)
{
c = c + 1;
}
return(c);
}
//funcion principal
main()
{
//declarar las variables locales del programa principal
char parrafo[N], palabra[N];
short cant;
printf("Ingrese un texto por favor: \n");
scanf("%s",&parrafo);
printf("Ingrese una palabra cualquiera: \n");
scanf("%s",&palabra);
cant = CantOcur(parrafo, palabra);
if ( cant == 0 )
{
printf("La palabra %s no esta en el parrafo\n",palabra);
}
else if( cant == 1 )
{
printf("La palabra %s esta solo %d vez en el parrafo\n",palabra, cant);
}
else
{
printf("La palabra %s esta %d veces en el parrafo\n",palabra,cant);
}
getch();
}