Foros del Web » Programación para mayores de 30 ;) » C/C++ »

strlen en dev c++

Estas en el tema de strlen en dev c++ en el foro de C/C++ en Foros del Web. Bueno necesito sacar el largo de una cadena y me tira error en la linea de la funcion strlen alguna idea aqui esta el codigo ...
  #1 (permalink)  
Antiguo 16/05/2008, 15:46
 
Fecha de Ingreso: febrero-2008
Mensajes: 26
Antigüedad: 16 años, 2 meses
Puntos: 1
strlen en dev c++

Bueno necesito sacar el largo de una cadena y me tira error en la linea de la funcion strlen alguna idea

aqui esta el codigo

#include <string>
#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
using namespace std;

int main () {
string linea;
int len;
ifstream MiArchivo ("Hello.txt");
if (MiArchivo.is_open())
{
//Mientras que no sea fin de archivo
while (! MiArchivo.eof() )
{
getline (MiArchivo,linea);
cout << linea << endl;

}
len=strlen(linea);/*AQUIIIIIIIIIIIIIII*/
cout << len << endl;
MiArchivo.close();
}

else cout << linea <<"No se pudo abrir el archivo.";

getch();
return 0;
}
  #2 (permalink)  
Antiguo 16/05/2008, 16:13
Avatar de _Lucifer_  
Fecha de Ingreso: junio-2006
Mensajes: 1.662
Antigüedad: 17 años, 11 meses
Puntos: 28
Respuesta: strlen en dev c++

La clase string tiene un método para obtener la longitud llamado length(), creo que tiene uno llamado size() que hace exactamente lo mismo.

Saludos
__________________
Si crees que no tiene sentido, etonces probablemente lo tenga... :arriba:
  #3 (permalink)  
Antiguo 17/05/2008, 11:51
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Respuesta: strlen en dev c++

Lo ideal es usar uno de los metodos señalados por _Lucifer_. El fallo esta en que el parametro esperado por strlen es un puntero a char y le estas pasando un string, normalmente cuando queremos trabajar directamente con la cadena de un string usamos el metodo c_str que nos la devuelve, entonces harias strlen(linea.c_str()) pero no tiene sentido teniendo disponibles los metodos citados.
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #4 (permalink)  
Antiguo 17/05/2008, 14:20
 
Fecha de Ingreso: marzo-2008
Mensajes: 303
Antigüedad: 16 años, 1 mes
Puntos: 4
Respuesta: strlen en dev c++

¿ No te da error, el primer include ?
#include <string>

Yo siempre he usado el siguiente:
#include <string.h>
  #5 (permalink)  
Antiguo 17/05/2008, 14:24
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Respuesta: strlen en dev c++

Cita:
Iniciado por a2a2 Ver Mensaje
¿ No te da error, el primer include ?
#include <string>

Yo siempre he usado el siguiente:
#include <string.h>
No, son dos cosas diferentes en C++ (ver cstring y string):
http://www.cplusplus.com/reference/

Lo que falta ahi en realidad es iostream para usar cout aunque seguramente este usando algun compilador viejo de Borland (conio.h).
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #6 (permalink)  
Antiguo 19/05/2008, 09:55
 
Fecha de Ingreso: mayo-2008
Mensajes: 8
Antigüedad: 16 años
Puntos: 0
Respuesta: strlen en dev c++

Cita:
Iniciado por _Lucifer_ Ver Mensaje
La clase string tiene un método para obtener la longitud llamado length(), creo que tiene uno llamado size() que hace exactamente lo mismo.

Saludos
Totalmente de acuerdo; yo en mi caso pondría len=linea.length()
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:03.