elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Cadenas a variables!! urgentee:(
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Cadenas a variables!! urgentee:(  (Leído 2,356 veces)
chicainge

Desconectado Desconectado

Mensajes: 15


Ver Perfil
Cadenas a variables!! urgentee:(
« en: 14 Septiembre 2014, 19:30 pm »

alguien tiene idea de como hacer este ejercicio??

Escribir un algoritmo que lea en una línea (hasta que se pulse Return), mediante una
cadena de caracteres, el nombre, la edad y el sexo de una persona y los almacene en tres
variables distintas denominadas nombre, edad y sexo. Por ejemplo, para la entrada
“Pepe 20 v” el contenido de nombre será “Pepe”, edad contendrá 20 y sexo ‘v’.


 tengo echo esto:

Código:
#include<iostream>

#define Return='\n'

using namespace std;

typedef TCad [30];

typedef struct{
  TCad nombre;
  unsigned edad;
  char sexo;
}TPersona;

int main(){
  TCad cad,cadaux;
  TPersona pers;  
  char c;
  int i=0;
  cout<< "introducir en una linea nombre edad sexo: ";
  cin.get(c);
  while(c!=Return){
    cad[i]=c;
    i++;
    cin.get(c);
  }
  //cin.getline(cad,30);
 //a partir de aqui no se que hacer....!!!!!!!!!!!
  //for(int j=0; j<i ;j++){
    //while(cad[j]!='\n'){
      
      //if(cad[j]!='\0'){
        
      //}
    //}
  //}
}


llego a leer la cadena pero no se como separarla para meterlas en la variable TPersona.... alguna ideaa??Gracias.


« Última modificación: 14 Septiembre 2014, 19:36 pm por chicainge » En línea

flony


Desconectado Desconectado

Mensajes: 583



Ver Perfil
Re: Cadenas a variables!! urgentee:(
« Respuesta #1 en: 15 Septiembre 2014, 02:53 am »

digo no sera mas facil el uso de http://www.cplusplus.com/reference/string/string/substr/


En línea

si un problema no tiene solucion entonces no es un problema...es algo inevitable
eferion


Desconectado Desconectado

Mensajes: 1.248


Ver Perfil
Re: Cadenas a variables!! urgentee:(
« Respuesta #2 en: 15 Septiembre 2014, 09:00 am »

Usas C++, por lo que no veo un motivo claro que no te impida usar la clase string.

Además, 'cin', dispone de un método llamado 'getline'. Este método tiene el inconveniente de que requiere cadenas al estilo 'C', sin embargo, la stl dispone también de un método 'getline' y en esta ocasión si permite trabajar con strings.

Además, en C++ no hace falta usar 'typedef' para las estructuras... es redundante y queda feo.

Con estas dos características en mente, la cosa se simplifica bastante:

Código
  1. #include <iostream>
  2. #include <string>
  3.  
  4. struct Persona
  5. {
  6.  std::string nombre;
  7.  unsigned edad;
  8.  char sexo;
  9. };
  10.  
  11. int main( )
  12. {
  13.  std::string cad;
  14.  std::cout<< "introducir en una linea nombre edad sexo: ";
  15.  std::getline( std::cin, cad );
  16.  
  17.  Persona persona;
  18.  int index = cad.find_first_of( ' ', 0 );
  19.  persona.nombre = cad.substr( 0, index );
  20.  
  21.  int last = index + 1;
  22.  index = cad.find_first_of( ' ', last );
  23.  persona.edad = std::stoi( cad.substr( last, index - last ) );
  24.  
  25.  last = index + 1;
  26.  persona.sexo = cad.at( last );
  27. }

PD.: el código asume que estás metiendo los datos correctamente.
En línea

chicainge

Desconectado Desconectado

Mensajes: 15


Ver Perfil
Re: Cadenas a variables!! urgentee:(
« Respuesta #3 en: 15 Septiembre 2014, 11:48 am »

da un error en la funcion stoi(), a mi me sale que no a sido declarada...falta alguna libreria?¿
En línea

eferion


Desconectado Desconectado

Mensajes: 1.248


Ver Perfil
Re: Cadenas a variables!! urgentee:(
« Respuesta #4 en: 15 Septiembre 2014, 12:04 pm »

compila con C++11.

Si no puedes usar C++11, entonces puedes usar la función atoi heredada de C.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda - Urgentee monedero
Java
jimytron 1 2,299 Último mensaje 27 Febrero 2012, 21:39 pm
por Proteus1989
Ayuda con MER urgentee!!!
Bases de Datos
mathias_vg 1 2,289 Último mensaje 17 Septiembre 2013, 00:12 am
por Hadess_inf
URGENTEE!
Programación C/C++
juannuevo 1 1,448 Último mensaje 29 Mayo 2014, 21:44 pm
por NikNitro!
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines