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

leer una cadena

Estas en el tema de leer una cadena en el foro de C/C++ en Foros del Web. Me podrian explicar que significan esas acciones porfavor? #define MAXLON 80 char cadena[MAXLON+1]; Gracias...
  #1 (permalink)  
Antiguo 11/12/2010, 06:01
 
Fecha de Ingreso: noviembre-2010
Mensajes: 8
Antigüedad: 13 años, 5 meses
Puntos: 0
leer una cadena

Me podrian explicar que significan esas acciones porfavor?

#define MAXLON 80

char cadena[MAXLON+1];


Gracias
  #2 (permalink)  
Antiguo 11/12/2010, 06:32
Avatar de Munire  
Fecha de Ingreso: julio-2010
Ubicación: en el ciberdespacio (España)
Mensajes: 150
Antigüedad: 13 años, 9 meses
Puntos: 4
Respuesta: leer una cadena

#define MAXLON 80

es una instruccion para el preprocesador de C. define una constante cuyo nombre es MAXLON y su valor es 80.

puede parecer que es igual a:

int MAXLON = 80;

pero no, por que esta es variable (puede cambiar), y la anterior es constante.



char cadena[MAXLON+1]; es lo mismo que char cadena[80+1];

declara una cadena de caracteres llamada "cadena", es decir una matriz de caracteres de 81 elementos.
  #3 (permalink)  
Antiguo 11/12/2010, 07:22
 
Fecha de Ingreso: noviembre-2010
Mensajes: 8
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: leer una cadena

Muchas gracias!
  #4 (permalink)  
Antiguo 11/12/2010, 12:53
 
Fecha de Ingreso: marzo-2009
Mensajes: 74
Antigüedad: 15 años, 1 mes
Puntos: 1
Respuesta: leer una cadena

Mira amigo a qui te dejo un pequeño codigo esta muy simple cambia el valor de MAXLON al que tu quieras y veras que siempre te ejecutara el numero de veces que le asignaste a MAXLON

Código C++:
Ver original
  1. #include<iostream.h>
  2. #include<conio.h>
  3. #define MAXLON 8 //A qui defines de que cantidad es MAXLON
  4. main()
  5.  
  6. {
  7.      int vector [MAXLON]; // A qui defines un arreglo, array, string como tu lo conoscas
  8.      int i,suma,suma2;
  9.      for (i=0;i<=MAXLON;i++) // A qui ace un ciclo se detiene cuand i se <= que MAXLON que vale 8
  10.      {
  11.          cout<<"Ingrese un entero:";
  12.          cin>>vector[i];
  13.          
  14.       }
  15.       suma=0;
  16.       for (i=0;i<=MAXLON;i++){
  17.       suma = vector[i]+MAXLON; // A qui le suma lo que tiene MAXLON en este caso 8
  18.       cout<<endl<<"["<<i<<" . "<<vector[i]<<"]="<<suma;
  19.  
  20.       }
  21.  getch();
  22.  return 0;
  23. }
  #5 (permalink)  
Antiguo 12/12/2010, 12:00
 
Fecha de Ingreso: octubre-2010
Ubicación: Edo. de México
Mensajes: 94
Antigüedad: 13 años, 6 meses
Puntos: 9
Respuesta: leer una cadena

Cita:
Iniciado por Vilacafu Ver Mensaje
Me podrian explicar que significan esas acciones porfavor?

#define MAXLON 80

char cadena[MAXLON+1];


Gracias

Estas acciones significan que quien sea que escribió esas pocas lineas necesita aprender un poco mas, ya que esta tratando de crear un arreglo de caracteres en tiempo de ejecución, lo cual no es posible sin apuntadores ¬¬.
  #6 (permalink)  
Antiguo 15/12/2010, 01:11
 
Fecha de Ingreso: diciembre-2010
Mensajes: 5
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: leer una cadena

Es como te han explicado anteriormente simplemente definio maxlon 80 y dentro del arreglo de caracteres introdujo un indice de 81 que van desde la ubicacion de memoria de 0 hasta 80 ya que la posicion 81 es un \0 indicando que termino la cadena.
  #7 (permalink)  
Antiguo 16/12/2010, 13:55
 
Fecha de Ingreso: enero-2008
Mensajes: 229
Antigüedad: 16 años, 3 meses
Puntos: 1
Respuesta: leer una cadena

solo que les falto poner una cosa cuando alguien declara

#define MAXLOG 80

char valores[MAXLOG+1]

el compilador antes de compilar reemplaza la "etiqueta" MAXLOG por 80, ya que como explicó Munire esta es una instrucción del preprocesador, asi que MAXLOG no es una variable.

Etiquetas: cadenas
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 01:40.