• Domingo 17 de Noviembre de 2024, 23:30

Autor Tema:  Funcion Strlen  (Leído 5640 veces)

mariote2000

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Funcion Strlen
« en: Sábado 6 de Marzo de 2004, 11:09 »
0
alguien me podria ayudar a, una vez volcado por pantalla el contenido de un fichero de texto, utilizar la funcion strlen para saber que cadena es la mas larga y eso.

nicokiki

  • Miembro MUY activo
  • ***
  • Mensajes: 298
    • Ver Perfil
Re: Funcion Strlen
« Respuesta #1 en: Sábado 6 de Marzo de 2004, 17:16 »
0
El "strlen(cadena)" te devuelve la longitud de una cadena menos 1. Esto lo hace porque no cuento el /0 .
No entiendo q es lo q no sabes hacer. Si lees de un archivo, la 1º vez le asignas a una variable "mayor" (q sea del tipo q vos necesites), y luego cada palabra q lees la comparas (usando el strlen) contra "mayor" y en caso de serlo, modificas el contenido de "mayor" y si no seguis leyendo palabras y listo.
Si tu pregunta era eso realmente no entiendo q es lo q no entendias

Salu2!!!!

mariote2000

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Re: Funcion Strlen
« Respuesta #2 en: Domingo 7 de Marzo de 2004, 00:02 »
0
el problema en cuestion es ke se vuelca en contenido de un archivo de texto, cuyo contenido puede ser:
hola
esto
adios fin.


y una vez hecho esto, lo ke no se como hacer es con la funcion strlen averiguar cual es la linea mas larga y cuantos caracteres tiene(en este caso la ultima linea).

dreadlock

  • Miembro activo
  • **
  • Mensajes: 66
    • Ver Perfil
Re: Funcion Strlen
« Respuesta #3 en: Domingo 7 de Marzo de 2004, 20:43 »
0
pues se me ocurre lo sigiente, para leer el archivo ocupa fgetc, es decir lle por caracteres,


ahora declara dos variables, si creop que con eso sera suficiente(las variables deberan ser apuntadores a cadena)

ahora cuando estes leyendo aparte de ir imprimiendo el caracter en stdout(pantalla), lo alamcenas en una cadena, ahora si se llega a un retorno de carro(enter), asumimos que se trata de una nueva linea, ahora que pensando en esto necesitaras una nueva variable opcional(por que si desees que al pasar de los 80 caracteres que permite la stdout, deberas poner un contador de caracteres para que al llegar a 80 sea como un car return.

ahora si llega a un car return, o maximo de 80 caracteres, con lo que la primer variable o cadena quedara finalizada, y desde ese instante empezara a llenar al siguiente cadena, despues si se llegara a necesitar de una 3 er cadena, que no es muy ortodoxo, yo propondria comparar la 1er cadena con la 2da, con un strlen, ahora si la primera es menor a las egunda, empezamos a reescribir en la segunda cadena, o al reves segun sea el caso:D

pues si creo que eso soluciona tu problema.
UN intento de explicar lo inezplicable:D

mabrev

  • Miembro MUY activo
  • ***
  • Mensajes: 126
    • Ver Perfil
Re: Funcion Strlen
« Respuesta #4 en: Lunes 8 de Marzo de 2004, 08:33 »
0
Hola:

  Creo que podía ser interesante que investigases la función fgets(), creo que lo que hace es leer una cadena (incluyendo espacios en blanco) hasta el retorno de carro, así que podrías leer por líneas y después utilizar strlen() para saber cuál es la más larga utilizando el método que te indicó nicokiki sólo que cambiando "palabras" por "lineas".

  Espero que te sirva.

Saludos.