Hola.
Del código creo deducir que la consigna es:
Ingresar caracteres y almacenarlos en un array.
Mostrar la cantidad de caracteres ingresados.
Mostrar la cantidad de palabras de cuatro letras
Reemplazar los caracteres por asteriscos en las palabras de cuatro letras.
Si es así, proba de este modo:
Código C:
Ver original#include <stdio.h>
int longitud(char []);
int palabras4(char []);
int main(int argc, char* argv[])
{
char A[50], c;
int i=0;
printf("Ingrese una frase\n"); while ((c
= getchar()) != '\n') A
[i
++] = c
; A[i] = ' '; // para poder evaluar la ultima palabra
A[i+1] = '\0';
// longitud(A)-1 por el ' ' agregado al final
printf("\nLa longitud de la cadena es: %d\n", longitud
(A
)-1); printf("\nEsta es la cantidad de palabras con 4 letras: %d\n", palabras4
(A
)); printf("\nEsta es la Cadena: %s \n", A
); return 0;
}
int longitud(char V[])
{
int j = 0;
while(V[j++]);
return j-1;
}
int palabras4(char V[])
{
int cl=0, c4=0, p4=0, i;
while (V[cl]) {
if (V[cl] == ' ') // fin palabra
{
if (c4 == 4) // de 4 letras ?
{
i = cl - 4; // obtener inicio palabra
while (i < cl) V[i++]= '*'; // cambiar por *
p4++; // otra palabra de 4 letras
}
c4 = 0; // a contar de nuevo
cl++; // avanzar espacio
}
cl++; // otra letra
c4++; // contar
}
return p4;
}
Si bién se podría hacer mas simple, traté de respetar las "herramientas" que, por el código, veo te han dado hasta ahora.
Saludos.