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

Es posible guardar letras en un arreglo de esta forma:

Estas en el tema de Es posible guardar letras en un arreglo de esta forma: en el foro de C/C++ en Foros del Web. Hola amigos, verán una función que retorna un arreglo con 2 letras. Yo tengo un for que hace lo siguiente: letras = funcion(); Donde función ...
  #1 (permalink)  
Antiguo 21/05/2011, 21:17
 
Fecha de Ingreso: septiembre-2007
Ubicación: PyRoot
Mensajes: 1.515
Antigüedad: 16 años, 6 meses
Puntos: 188
Es posible guardar letras en un arreglo de esta forma:

Hola amigos,

verán una función que retorna un arreglo con 2 letras.

Yo tengo un for que hace lo siguiente:

letras = funcion();

Donde función retorna el arreglo de con 2 letras.


Me pregunta si es posible crear un vector que almacene cada arreglo.

ejemplo:


letras[0] = funcion();
letras[1]=funcion();
letras[2]=funcion();
.
.
.
.
.
etc....

Mas preciso esto:
Código C++:
Ver original
  1. for(i=0;i<3;i++){
  2. letras[i]=funcion();
  3. }
  4.  
  5. //Recordando que funcion retorna un arreglo con 2 letras.


La idea es que despues pueda hacer referencia a cada arreglo y de ahi sacar las 2 letras por arreglo.

Saludos.
  #2 (permalink)  
Antiguo 21/05/2011, 21:33
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: Es posible guardar letras en un arreglo de esta forma:

Puedes definir letras como un doble array.

char letra[20][20];

Luego para saber la primer letra de la quinta posicion, por ejemplo, haces:

letra[5][0]
  #3 (permalink)  
Antiguo 21/05/2011, 21:45
 
Fecha de Ingreso: septiembre-2007
Ubicación: PyRoot
Mensajes: 1.515
Antigüedad: 16 años, 6 meses
Puntos: 188
Respuesta: Es posible guardar letras en un arreglo de esta forma:

muchas gracias amigo.

No sabia que se podia para este caso jeje. Te mando un saludo :D
  #4 (permalink)  
Antiguo 21/05/2011, 21:51
 
Fecha de Ingreso: septiembre-2007
Ubicación: PyRoot
Mensajes: 1.515
Antigüedad: 16 años, 6 meses
Puntos: 188
Respuesta: Es posible guardar letras en un arreglo de esta forma:

Soma una pregunta, podiras ayudarme a comprender como funcionaria ??
Código C++:
Ver original
  1. main(){
  2.  char cadena[20][20];
  3.  
  4.          cadena[0][5]= {'h','o','l','a'};
  5.          cadena[1][5]= {'h','o','l','a'};
  6.          cadena[2][5]= {'h','o','l','a'};
  7.  
  8.         cout << cadena[0][5]; //Imprime la h ??
  9.         cout << cadena[1][5]; //Imprime la o ??
  10.         cout << cadena[2][5]; // Imprime la l  ??
  11.        
  12.    getch();    
  13. }


El codigo anterior no me compila de esa manera.
  #5 (permalink)  
Antiguo 21/05/2011, 22:42
_Lx
 
Fecha de Ingreso: mayo-2011
Mensajes: 17
Antigüedad: 12 años, 10 meses
Puntos: 11
Busqueda Respuesta: Es posible guardar letras en un arreglo de esta forma:

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.          ...

Ahora como sabes , una cadena es también un vector de caracteres, así que para acceder a cada caracter, sería así:

Código C:
Ver original
  1. cout << cadena[0][2]; // Imprime el elemento 2 de la cadena 0 ('l')
  2. cout << cadena[1][3]; // Imprime el elemento 3 de la cadena 1 ('u')

Para tu problema sería así:

Código C:
Ver original
  1. int main()
  2. {
  3.    char *cT; // temporal.
  4.    char letras[3][2]; // creas el vector de cadenas "letras" de dimensión 3 y cada elemento (cadena) de dimensión 2.
  5.    // en realidad ya no sería una cadena sino un vector de caracteres, ya que parece ser cadena tiene que tener el fin de cadena '\0'.
  6.    ...
  7.  
  8.    for( int i = 0; i < 3; i++){
  9.      
  10.       // letras[i] = funcion(...); // esto no compilaría porque funcion(...) te devuelve una dirección y letras[i] es un vector (de caracteres) estático (no se le puede cambiar la dirección), por eso se debería utilizar lo sgte:
  11.       cT = funcion(...); // cT espera una dirección y eso es lo que obtiene de funcion(...).
  12.       strncpy( letras[i], cT, 2); // copiamos los 2 primeros caracteres de cT en letras[i].
  13.       free(cT); // liberamos la memoria ocupada por cT.  
  14.    }
  15. }

Última edición por _Lx; 21/05/2011 a las 23:09
  #6 (permalink)  
Antiguo 21/05/2011, 23:34
 
Fecha de Ingreso: septiembre-2007
Ubicación: PyRoot
Mensajes: 1.515
Antigüedad: 16 años, 6 meses
Puntos: 188
Respuesta: Es posible guardar letras en un arreglo de esta forma:

Amigo, todas mis dudas quedaron aclaradas, nuevamente muchas gracias.

Un saludo.

Etiquetas: letras, posible, arreglos, formulario
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 17:06.