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

[SOLUCIONADO] Listas y manejo de datos

Estas en el tema de Listas y manejo de datos en el foro de C/C++ en Foros del Web. Hize un programa en c++ utilizando estructuras para hacer una lista simplemente vinculada, la cual crea un usuario con nombre, apellido, dirección y edad. todas ...
  #1 (permalink)  
Antiguo 10/06/2013, 17:57
 
Fecha de Ingreso: junio-2013
Ubicación: Ciudad de México
Mensajes: 2
Antigüedad: 10 años, 10 meses
Puntos: 0
Pregunta Listas y manejo de datos

Hize un programa en c++ utilizando estructuras para hacer una lista simplemente vinculada, la cual crea un usuario con nombre, apellido, dirección y edad. todas las variables son cadenas de texto, por lo que las maneje como string, pero al querer hacerlo con tipos char las operaciones de asignación que hago en la función nuevousuario() como pInicial->nombre=nom; me marca un error diciéndome error C2440: '=' : no se puede realizar la conversión de 'char' a 'char [30]', entonces como quedarían esas asignaciones?

Código C++:
Ver original
  1. struct usuario
  2. {
  3.     string nombre;
  4.     string apellido;
  5.     string direccion;
  6.     string edad;
  7.     struct usuario *siguiente;
  8. };
  9. struct usuario *pInicial, *pFinal, *pAux;
  10.  
  11. void usuarionuevo(string nom, string ape, string dir, string eda)
  12. {
  13.     if(pInicial == NULL)
  14.     {
  15.         pInicial=new(usuario);
  16.         pInicial->nombre=nom;
  17.         pInicial->apellido=ape;
  18.         pInicial->direccion=dir;
  19.         pInicial->edad=eda;
  20.         pFinal=pInicial;
  21.     }
  22.     else
  23.     {
  24.         pAux=new(usuario);
  25.         pFinal->siguiente=pAux;
  26.         pInicial->nombre=nom;
  27.         pInicial->apellido=ape;
  28.         pInicial->direccion=dir;
  29.         pInicial->edad=eda;
  30.         pFinal=pAux;
  31.     }
  32.     pFinal->siguiente=NULL;
  33. }
  34.        
  35. void lectura()
  36. {
  37.      string nom, ape, dir, eda;
  38.      
  39.      
  40.      cout<<"Ingresa el Nombre: ";
  41.      cin>>nom;
  42.      cout<<endl<<"Ingresa el Apellido: ";
  43.      cin>>ape;
  44.      cout<<endl<<"Ingresa la direccion(capturar sin espacios): ";
  45.      cin>>dir;
  46.      cout<<endl<<"Ingresa la edad: ";
  47.      cin>>eda;
  48. }
  49.  
  50. void muestra_lista()
  51. {
  52.      int cont=1;
  53.      pAux=pInicial;
  54.      system("CLS");
  55.      while(pAux != NULL)
  56.      {
  57.                 cout<<"Usuario no."<<cont<<endl<<endl;
  58.                 cout<<"Nombre: "<<pAux->nombre;
  59.                 cout<<endl<<"Apellido: "<<pAux->apellido;
  60.                 cout<<endl<<"Direccion: "<<pAux->direccion;
  61.                 cout<<endl<<"Edad: "<<pAux->edad<<endl<<endl;
  62.                 pAux = pAux->siguiente;
  63.                 cont++;
  64.      }
  65. }
  66.      
  67. int main()
  68. {
  69.     string nom,ape,dir,eda;
  70.     char respuesta;
  71.     preg:
  72.     system("CLS");
  73.     cout<<"Ingresa la opcion deseada"<<endl;
  74.     cout<<"Nuevo usuario -- s \nSalir         -- n "<<endl<<"Respuesta: ";
  75.     cin>>respuesta;
  76.     switch(respuesta)
  77.     {
  78.                      case 's':
  79.                           system("CLS");
  80.                           lectura();
  81.                           usuarionuevo(nom,ape,dir,eda);
  82.                           goto preg;
  83.                           break;
  84.                          
  85.                      default:
  86.                              if(pInicial==NULL)
  87.                              {
  88.                              system("CLS");
  89.                              cout<<"Lista vacia, no hay elementos..."<<endl;
  90.                              system("PAUSE");
  91.                              exit(0);
  92.                              }
  93.                              else
  94.                              {
  95.                                  muestra_lista();
  96.                                  system("pause>nul");
  97.                                  exit(0);
  98.                                  }
  99.     };
  100.                          
  101.  
  102.     system("pause>nul");
  103.     return 0;
  104. }
  #2 (permalink)  
Antiguo 10/06/2013, 18:25
 
Fecha de Ingreso: enero-2012
Ubicación: Buenos Aires
Mensajes: 745
Antigüedad: 12 años, 3 meses
Puntos: 35
Respuesta: Listas y manejo de datos

Las cadenas en C son arrays de caracteres, por lo que para llenar cada uno de las posiciones con el caracter correspondiente se usa la función strcpy.

Código C:
Ver original
  1. #include <string.h>
  2.  
  3. char s[30];
  4. strcpy(s, "Hello, world!");

  #3 (permalink)  
Antiguo 11/06/2013, 12:04
 
Fecha de Ingreso: junio-2013
Ubicación: Ciudad de México
Mensajes: 2
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: Listas y manejo de datos

Excelente, muchas gracias

Etiquetas: arreglos, c++, estructuras, listas
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 23:21.