• Lunes 29 de Abril de 2024, 06:15

Autor Tema:  Arreglo Tipo Char...muy Pequeño  (Leído 1017 veces)

guaruzo

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Arreglo Tipo Char...muy Pequeño
« en: Jueves 15 de Noviembre de 2007, 17:24 »
0
La escencia del problema en el que estoy atorado en un programa de C++ está en el siguiente código, el cual lee los nombres de tres alumnos y al final los despliega en pantalla.
La cuestión es cómo hacer lo mismo pero con dos funciones: una que los lea y otra que enliste los nombres capturados. Lo he intentado pero siempre me da errores con el paso de parámetros. El arreglo está declarado en dos dimensiones porque en C++ no existen sentencias de tipo string, sino sólo de tipo char, por lo tanto parece que cada letra o espacio se almacenan por separado.
Muchísimas gracias por tu tiempo...



#include <stdio.h>
#include <iostream.h>
#include <stdlib.h>
#include <string.h>

 main()
{
       
char nombre[3][10];
int x, y;

for(x = 0; x <= 2; x++)
   {
   printf ("inserte nombre %d  ", x+1);
   scanf("%s", nombre
  • );

   }

for (y=0; y<=2; y++)
   {
       printf("\n%s", nombre[y]);
   printf ("\n");
   }

system ("pause");
}

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Arreglo Tipo Char...muy Pequeño
« Respuesta #1 en: Jueves 15 de Noviembre de 2007, 18:45 »
0
Eso de C++ no tiene mucho realmente y deberia ser iostream (no hace falta el .h). El programa funciona, mientras no uses nombres de mas de 10 letras ...

En C++ existe una clase llamada string.

Esto si es C++:

Código: Text
  1.  
  2. #include &#60;iostream&#62;
  3. #include &#60;string&#62;
  4.  
  5. using namespace std;
  6.  
  7. void main()
  8. {
  9.  
  10.   string nombre[3];
  11.  
  12.   for(int x = 0; x &#60;= 2; x++)
  13.   {
  14.     cout &#60;&#60; &#34;Inserte nombre &#34; &#60;&#60; x &#60;&#60; &#34; &#34;;
  15.     cin &#62;&#62; nombre[x];
  16.   }
  17.  
  18.   for(int x = 0; x &#60;= 2; x++)
  19.   {
  20.     cout &#60;&#60; nombre[x] &#60;&#60; endl;
  21.   }
  22. }
  23.  
  24.  

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

ProfesorX

  • Moderador
  • ******
  • Mensajes: 796
  • Nacionalidad: mx
    • Ver Perfil
Re: Arreglo Tipo Char...muy Pequeño
« Respuesta #2 en: Jueves 15 de Noviembre de 2007, 18:52 »
0
Primero un consejo, siempre coloca tu codigo con [ code][ /code], (sin espacio en los corchetes) hace que sea mas legible.

Citar
El arreglo está declarado en dos dimensiones porque en C++ no existen sentencias de tipo string, sino sólo de tipo char

Eso no es cierto, en C++ si existe el tipo string, esta declarado dentro del namespace std, solo tienes que añadirlo a tu codigo, pero deberias usar ademas cout y cin. Es C el lenguaje en que no existe string, solo char.

Te pongo el codigo para que te des cuenta de la diferencia

C++
Código: Text
  1.  
  2. #include &#60;iostream&#62;
  3.  
  4. // Nota el uso del namespace
  5. using namespace std;
  6.  
  7. int main()
  8. {
  9.     string nombre[3];
  10.     int x, y;
  11.  
  12.     for (x = 0; x &#60;= 2; x++)
  13.     {
  14.         cout &#60;&#60; &#34;inserte nombre &#34; &#60;&#60; x + 1;
  15.         cin &#62;&#62; nombre[x];
  16.     }
  17.  
  18.     for (y=0; y&#60;=2; y++)
  19.     {
  20.         cout &#60;&#60; &#34;&#092;n&#34; &#60;&#60; nombre[y] &#60;&#60; &#34;&#092;n&#34;;
  21.     }
  22.  
  23.     system (&#34;pause&#34;);
  24.     return 0;
  25. }
  26.  
  27.  

Asi que para hacerlo en C++, deberias hacer algo como esto:

Código: Text
  1.  
  2. void leer_nombre(string nombre[])
  3. {
  4.     int x;
  5.     for (x = 0; x &#60;= 2; x++)
  6.     {
  7.         cout &#60;&#60; &#34;inserte nombre &#34; &#60;&#60; x + 1;
  8.         cin &#62;&#62; nombre[x];
  9.     }
  10. }
  11.  
  12.  

y el llamado de la funcion:
Código: Text
  1.  
  2.     leer_nombre(nombre);
  3.  
  4.  

Si te decantas por utilizar C en lugar de C++, la rutina seria asi:
Código: Text
  1.  
  2. void leer_nombre(char nombre[][10])
  3. {
  4.     int x;
  5.     for (x = 0; x &#60;= 2; x++)
  6.     {
  7.         printf (&#34;inserte nombre %d &#34;, x+1);
  8.         scanf(&#34;%s&#34;, nombre[x]);
  9.     }
  10. }
  11.  
  12.  

Nota como pongo el tamaño de la segunda dimension en el parametro, no es necesario poner el tamaño de la primera dimension.

Con esto ya tienes para terminar lo demas.

Saludos :)

NOTA:
==================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
==================================================================

ProfesorX

  • Moderador
  • ******
  • Mensajes: 796
  • Nacionalidad: mx
    • Ver Perfil
Re: Arreglo Tipo Char...muy Pequeño
« Respuesta #3 en: Jueves 15 de Noviembre de 2007, 18:54 »
0
jaja me gano por unos minutos eternal idol, miemtras escribia mi mensaje :P

NOTA:
==================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
==================================================================