Ver Mensaje Individual
  #6 (permalink)  
Antiguo 03/03/2015, 01:18
eferion
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 9 años, 7 meses
Puntos: 204
Respuesta: longitud de una cadena en C

Código C++:
Ver original
  1. int main()
  2. {
  3. int mayor=100;
  4.  
  5. // ...
  6. for(y=1;y<=x;y++)
  7. {
  8.    if(longitud[y]<=mayor)

En tu caso, mayor siempre es igual a 100, se supone que tienes que hacer que "mayor" almacene la longitud máxima. Una opción puede ser asignarle a "mayor" un valor no válido (0 o cualquiera negativo) y, al ir añadiendo las cadenas, comparar la longitud de la cadena actual con "mayor", si la longitud actual es mayor, sustituyes el valor. Al final del bucle tendrás en "mayor" el valor de la longitud máxima.

Por otro lado, no hace falta que vayas almacenando en un array la longitud de cada cadena. Dado que para acceder a cada uno de esos valores vas a tener que iterar sobre un array, es más sencillo llamar a strlen( cadena[i] ) cada vez que quieras conocer la longitud de una cadena en concreto. Te lo digo porque así te puedes quitar de encima una variable.

En cuanto al supuesto de elegir un índice y mostrar todas las cadenas que tengan la misma longitud... basta con calcular en primer lugar la longitud de la cadena seleccionada. Después iteras sobre todas las cadenas y comparas su longitud con la pedida... si coinciden la muestras y listo.

Un saludo.