programar una funcion:
int * datos_frase(char*)
recibe una frase y devuelve un arreglo de enteros que en cada posicion va a tener la cantidad de letras de cada palabra de la frase.
Con lo cual, si mi frace es hola mundo, va a devolver un arreglo de 2 posiciones que va a tener un 4 y un 5.
sin desperdiciar memoria.
*/
#include <stdio.h>
#include <stdlib.h>
int * datos_frase (char * frase);
int es_letra (char l);
int main()
{
int * palabras=datos_frase("Hola Mundo!, como estan?, yo muy muy muy muy muy bien");
printf("%d,%d,%d,%d,%d,%d,%d,%
free(palabras);
return 0;
}
int * datos_frase (char * frase)
{
int a=10;
int * palabras=(int *)malloc(sizeof(int)*a);
if(palabras==NULL)
printf("Falta de memoria");
char l;
int i=0,j=0;
int cont=0;
do
{
if(es_letra(frase[i]))
{
cont++;
}
if(!es_letra(frase[i+1])&&(es_
{
palabras[j]=cont;
j++;
if(j>=a)
{
a+=10;
palabras=(int*)realloc(
}
cont=0;
}
i++;
}while(frase[i]!='\0');
palabras=(int*)realloc(
return palabras;
}
int es_letra (char l)
{
if((l>='a'&&l<='z')||(l>='A'&&
return 1;
else
return 0;
}
No comments:
Post a Comment