Como separar una cifra en digitos individuales

Deseo separar una cifra como 1234 en digitos individuales y agregarlos a su respectivo int para despues imprimir, he tratado, buscado metodos de posicionamiento para tomar el digito que deseo y no encuentro respuesta alguna, alguien sabe ese dato?

int DATO = 1234;
int DIGITO1 = 0;
int DIGITO2 = 0;
int DIGITO3 = 0;
int DIGITO4 = 0;

void setup() {
  Serial.begin(9600); 

  Serial.println(DIGITO1);
  Serial.println(DIGITO2);
  Serial.println(DIGITO3);
  Serial.println(DIGITO3);

}

void loop() {

}

Usando divisiones x enteros y % (módulo) vas logrando lo que deseas.
Supongamos que tienes 1234

  1. si buscas el módulo 10 o sea el resto de la división de 1234 entre 10 te dara 4, obtienes el primer dígito.
  2. Si divides 1234 x 10 te queda 123 cuando operas con entero

Repitiendo 1 y 2 resuelves en cada paso los numeros
Siguiente 123 % 10 = 3 obtienes la decena
123/10 = 12 sigues la operación

12%10 = 2 obtienes la centena
12/10 = 1 te queda el utimo digito
Pero como 1 es mayor que 0 sigues con una iteracción mas

1%10 = 1
1/10 = 0 y ahi terminas
Puesto en códigio

int cifras[10];

void setup() {
  Serial.begin(9600);
  separo(1234);
}
void loop(){}

void separo(int valor) {  
   int i = 0;
   while (valor>0) {
        cifras[i] = valor%10;
        valor = valor/10;
       Serial.println(cifras[i]);
          i++;
    }   
 }

Debería funcionar.
En cifras tienes cada digito, lo usas como desees.
cifras[0] tendrá la unidad,
cifras[1] tendrá la decena y asi

1 Like

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.