Una pregunta de programación en lenguaje C: busque la palabra más larga en la cadena y envíela
Esta línea es incorrecta, necesitas agregar un * antes de p1:
printf("c", p1
Cámbialo a
printf("c", *p1);
Es difícil entender el programa escrito por otros, así que ¿por qué no reescribirlo usted mismo y ha sido probado?
#include lt ;stdio.hgt;
#include lt;string.hgt;
int main()
{
char s[128 ];
char *p1, *p2;
int max=0, len=0
printf("Ingrese una cadena: ");
obtiene(s);
p1=s;
for (int i=0; ilt; strlen(s); i )
{
if (s[i]==' ') // Si el carácter actual es un espacio, compare si la longitud de la palabra actual es mayor que el valor máximo y luego restablecer la longitud.
{
if (longitud; máx)
{
max=len
p2=p1; ;
}
len=0;
} else // Si el carácter actual no está vacío, si la longitud actual es 0, representa un nuevo palabra.
{
if (len==0)
p1=amp;
len
}
}
mientras (*p2 amp; amp; *p2!=' ')
printf("c", *p2 );
}