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

arreglo bidimencional tipo char ??

Estas en el tema de arreglo bidimencional tipo char ?? en el foro de C/C++ en Foros del Web. ¿Como puedo crear un arreglo bidimencional tipo char? Necesito hacer algo como esto @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código C++: Ver original #define MAX 100   char nombre ...
  #1 (permalink)  
Antiguo 23/05/2011, 21:17
 
Fecha de Ingreso: septiembre-2007
Ubicación: PyRoot
Mensajes: 1.515
Antigüedad: 17 años, 2 meses
Puntos: 188
arreglo bidimencional tipo char ??

¿Como puedo crear un arreglo bidimencional tipo char?

Necesito hacer algo como esto
Código C++:
Ver original
  1. #define MAX 100
  2.  
  3. char nombre[10][MAX];
  4.  
  5. for(i=0;i<10;i++){
  6.  
  7. cout << "Hola persona" << i << ". Escribe tu nombre: ";
  8. cin >> nombre[i][MAX];
  9.  
  10. }

La idea es guardar el nombre de 10 personas distinta en arreglos para despues consultarlos.


Si hay que usar punteros, me podrian dar un breve explicación del porque, no entiendo eso de los punteros. Muchisimas gracias.

_______________________
EDITO


O acaso es esto lo que necesito hacer?

Código C++:
Ver original
  1. char nombre[MAX];
  2.  
  3. nombre={'nombre1','nombre2','nombre3',.....,'nombre n-1'};


No entiendo, muchas gracias por la explicacion. Saludos.

Última edición por iovan; 23/05/2011 a las 21:22
  #2 (permalink)  
Antiguo 23/05/2011, 22:02
_Lx
 
Fecha de Ingreso: mayo-2011
Mensajes: 17
Antigüedad: 13 años, 6 meses
Puntos: 11
Busqueda Respuesta: arreglo bidimencional tipo char ??


Y esto?

Cita:
Iniciado por _Lx Ver Mensaje
Código C:
Ver original
  1. char cadena[10][20];

Al poner "char cadena[10][20]", estás declarando un vector de 10 cadenas y cada cadena tiene 20 de dimensión.

Para dar valores a cada cadena es como dar valores a elementos de un vector:

Cita:
Iniciado por New Ver Mensaje
Amigo, todas mis dudas quedaron aclaradas, nuevamente muchas gracias.

Un saludo.
  #3 (permalink)  
Antiguo 23/05/2011, 22:11
 
Fecha de Ingreso: septiembre-2007
Ubicación: PyRoot
Mensajes: 1.515
Antigüedad: 17 años, 2 meses
Puntos: 188
Respuesta: arreglo bidimencional tipo char ??

ohhh. jeje es verdad mis dudas volvieron a surgir, veras llevo 6 materias de matematicas y 1 de programacion ya no bien en donde esta mi cerebro.

muchas gracias,.

veras yo estoy usando eso pero no me funciona.

porfa amigo hechame la mando, porque no me funciona??

mira ve mi codigo
Código C++:
Ver original
  1. #define MAX 100
  2. char nombre_profesor[10][MAX];
  3. int profesor;
  4.  
  5. for(profesor=0;profesor<10;profesor++){
  6.  
  7. printf("Indique nombre del profesor %d: ",profesor+1);    scanf("%s",&nombre_profesor[profesor][MAX]);
  8. printf("Tu cadena es: %s",nombre_profesor[profesor][MAX]); getch();
  9.  
  10. }
  #4 (permalink)  
Antiguo 23/05/2011, 23:06
_Lx
 
Fecha de Ingreso: mayo-2011
Mensajes: 17
Antigüedad: 13 años, 6 meses
Puntos: 11
Información Respuesta: arreglo bidimencional tipo char ??


Aquí está la respuesta:

Cita:
Iniciado por _Lx Ver Mensaje
Código C:
Ver original
  1. char cadena[10][20];

Al poner "char cadena[10][20]", estás declarando un vector de 10 cadenas y cada cadena tiene 20 de dimensión.

Para dar valores a cada cadena es como dar valores a elementos de un vector:

Código C:
Ver original
  1. //              0   1   2   3    4
  2.    cadena[0]= {'h','o','l','a','\0'}; // si declaras de esta forma debes poner '\0' al final que significa fin de cadena.
  3.    cadena[1]= "chau"; // al declarar de esta forma el '\0' se pone automáticamente al final.
  4.          ...
Ahí yo le ponía datos a la cadena, si quieres que el usuario lo ingrese ....

Nunca uses: scanf, cin, gets (no tienen control interno).

La función recomendada es: fgets ( Nombre de la Cadena, Dimensión máxima (control), FILE*);

Sería así:

Código C:
Ver original
  1. fgets( cadena[n],  20, stdin);
  2. cadena[n][strlen(cadena[n])-1] = '\0';

Tal que n pertecene al conjunto: { 0, 1, 2, ... , 9}, ya que fue declarado con dimensión [10][20]

Recuerda que cuando uses funciones de lectura sin control interno (scanf(...), cin, etc.) debes poner la respectiva sentencia para limpiar el buffer ("setbuf(stdin,NULL)", "while(getchar()!='\n')", etc.).

  #5 (permalink)  
Antiguo 24/05/2011, 20:10
 
Fecha de Ingreso: septiembre-2007
Ubicación: PyRoot
Mensajes: 1.515
Antigüedad: 17 años, 2 meses
Puntos: 188
Respuesta: arreglo bidimencional tipo char ??

Este tema lo voy a guardar para futuras referencias, te lo agradezco amigo un saludo.

Etiquetas: char, tipo, arreglos
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 08:45.