Go Down

Topic: Pregunta facil ¿concatenar variables? (Read 607 times) previous topic - next topic

juanmol

Hola, llevo un rato mirando la documentacion y no lo consigo.
Tengo dos variables:
int variable1 = 111;
int variable2 = 222;

Quiero tener otra variable que concatene las dos y ademas le meta un par de ceros: 11100222 ¿cómo lo hago? No quiero sumarlas, multiplicarlas, restarlas ... quiero tener otra variable con el valor de las otras dos concatenadas (y los ceros).

Cheyenne

Podrías hacerlo al estilo: multiplico la primera variable por 100.000 y le sumo la segunda variable. Tienes control amplio ya que puedes comprobar si la segunda variable tiene más o menos cifras para multiplicar por 10.000, 100.000 o lo que corresponda.
http://cuadricopterodiyarduino.blogspot.com/

giltesa

Code: [Select]

int variable1 = 111;
int variable2 = 222;


void setup()
{
   Serial.begin(9600);
   delay(1000);
   Serial.println(concatenadoEspecial( variable1, variable2 ));
}


void loop()
{

}


unsigned long concatenadoEspecial( int numA, int numB )
{
   int separador = 0;
   int repeticiones = 2;
   
   // Concatena numA:
   unsigned long temp = numA;
   
   
   // Concatena los 0s:
   for( int i=0 ; i<repeticiones ; i++ )
   {
      temp *= 10;
      temp += separador;
   }
   
   
   // Concatena numB:
   int digNumB = cuentaDig(numB);
   for( int i=0 ; i<digNumB ; i++ )
      temp *= 10;
   temp += numB;
   
   return temp;
}


int cuentaDig( int num )
{
   int nDig;

   for( nDig=0 ; num != 0 ; nDig++ )
      num /= 10;

   return nDig;
}


Saludos!
giltesa.com Mi blog personal sobre informática, electrónica, Arduino, bricolaje, etc.

curro92

#3
Aug 25, 2013, 06:35 pm Last Edit: Aug 25, 2013, 06:38 pm by curro92 Reason: 1
Hola,
se puede hacer de varias formas.
Por ejemplo, puedes formar una cadena de texto y convertir a long int:
Code: [Select]

  int variable1 = 111;
 int variable2 = 222;
 char vartxt[22];
 long variable3;

 sprintf(vartxt, "%d00%d", variable1, variable2);
 variable3 = atol(vartxt);


Go Up