LONGITUD DE UNA PALABRA

aprendiz_
18 de Noviembre del 2005
BUENOS DIAS,

Trabajo en Lenguaje C,

Tengo una duda, a ver si me podéis ayudar...
Resulta que tengo un frase y quiero mostrar la longitud de la palabra más corta y de la más larga.

He pensado en utilizar el strlen para mostrar la longitud pero no se bien, bien, como enfocarlo... Para empezar habia pensado en contar las palabras que hay, pero lo encuentro absurdo, en todo caso tendré que contar caracter a caracter hasta llegar a un espacio en blanco, no?

Como podéis ver tengo un lio en la cabeza que no veas... Por favor, ¿me puede ayudar alguien?

Lo agradecería muchisimo, besos

kike
18 de Noviembre del 2005
Hay varias formas de hacer esto, puedes descomponer la cadena en palabras y despues ordenarlas por tamaño, pero si solo necesitas conocer el tamaño de la mas corta y la mas larga es mejor ir contando los caracteres con un bucle y guardano el mayor y menor tamaño,

int main()
{
char miCadena[]="Una frase cualquiera a las doce";
char *p=miCadena;
int menor, mayor, medida;
char *caracter=" ";//caracteres de separacion de
//obtener primera palabra
p=strtok(miCadena,caracter);
//asignar su longitud como mayor y menor
menor=mayor=strlen(p);
//recorrer todas las palabras
while(p)
{
medida=strlen(p);
if(mayor<medida)
mayor=medida;
if(menor>medida)
menor=medida;
p=strtok(NULL,caracter);
}

printf("la menor palabra contiene:%d letrasn",menor);
printf("la mayor palabra contiene:%d letras",mayor);

getch();
return 0;
}