Go Down

Topic: Pregunta facil ¿concatenar variables? (Read 656 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/

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
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy