Ver Mensaje Individual
  #4 (permalink)  
Antiguo 23/05/2011, 23:06
_Lx
 
Fecha de Ingreso: mayo-2011
Mensajes: 17
Antigüedad: 13 años
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.).