Pages: [1]   Go Down
Author Topic: Pregunta facil ¿concatenar variables?  (Read 440 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Jr. Member
**
Karma: 0
Posts: 65
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Offline Offline
God Member
*****
Karma: 6
Posts: 630
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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


Huesca, Spain
Offline Offline
Full Member
***
Karma: 3
Posts: 100
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Code:
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!
Logged


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

Euskadi
Offline Offline
God Member
*****
Karma: 16
Posts: 710
Arduinotarrak
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hola,
se puede hacer de varias formas.
Por ejemplo, puedes formar una cadena de texto y convertir a long int:
Code:
  int variable1 = 111;
  int variable2 = 222;
  char vartxt[22];
  long variable3;

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

« Last Edit: August 25, 2013, 11:38:00 am by curro92 » Logged

Pages: [1]   Go Up
Jump to: