Separando o valor de uma variavel em outras variaveis

Olá, galera sou novo em eletrônica e programação, então peço perdão se essa for uma pergunta muito idiota, já procurei nesse forum e em outros locais mas não tive um exemplo que se enquadrasse no meu caso. É o seguinte, tenho uma variavel com um valor de 6 digitos, exemplo: 123456. Quero separar esses digitos em outra variaveis, seguindo esse padrão: var01 = 1, var02 = 23, var04 = 4, var05 = 56. Como faço isso?

Zhenit: Olá, galera sou novo em eletrônica e programação, então peço perdão se essa for uma pergunta muito idiota, já procurei nesse forum e em outros locais mas não tive um exemplo que se enquadrasse no meu caso. É o seguinte, tenho uma variavel com um valor de 6 digitos, exemplo: 123456. Quero separar esses digitos em outra variaveis, seguindo esse padrão: var01 = 1, var02 = 23, var04 = 4, var05 = 56. Como faço isso?

O que queres é o resto da divisão por 10 ou 100:

int valor = 123456

int var05 = valor % 100
valor = valor / 100

int valor04 = valor % 10
valor = valor / 10
...

neste exemplo, 123456 % 100 = 56 e 123456 / 100 = 1234 Com esta tecnica consegues "separar" valores inteiros

Essa variável "original" é um valor inteiro, ou é texto? Se for texto, é diferente daquilo que está a ser indicado na resposta anterior.

luisilva: Essa variável "original" é um valor inteiro, ou é texto? Se for texto, é diferente daquilo que está a ser indicado na resposta anterior.

Se a variavel for do tipo String, então a solução trivial será usar a função substr Por exemplo

String valor = "123456"; var01 = valor.substr(0,1); var02 = valor.substr(1,2); var04 = valor.substr(3,1); var05 = valor.substr(4,2);

Galera obrigado por responder tão rápido, na verdade o valor é uma informação que esta chegando por um sensor Ir, então acho que posso transformar ou em int ou em string né? Percebam que preciso de 4 variaveis, a primeira com o primeiro digito, a segunda com o segundo e terceiro dígitos, a terceira com o quarto digito e a ultima com o quinto e sexto digito. Qual a maneira mais fácil de fazer essa separação?

Zhenit: Galera obrigado por responder tão rápido, na verdade o valor é uma informação que esta chegando por um sensor Ir, então acho que posso transformar ou em int ou em string né? Percebam que preciso de 4 variaveis, a primeira com o primeiro digito, a segunda com o segundo e terceiro dígitos, a terceira com o quarto digito e a ultima com o quinto e sexto digito. Qual a maneira mais fácil de fazer essa separação?

Se esse valor é a leitura de um sensor, esse sensor deve estar ligado a uma porta analogica do arduino, e esses valores variam entre 0 e 1023. Se assim for, esse valor nunca vai ter 6 digitos...

De qualquer das formas, quanto menos converteres a informação, melhor. Ou seja, o arduino lê um nº int do sensor, por isso deves usar a primeira solução trocando a linha "int valor = 123456" por "int valor = analogRead(A0)" (troca tambem A0 pela porta correta)

evil-noxx: Se esse valor é a leitura de um sensor, esse sensor deve estar ligado a uma porta analogica do arduino, e esses valores variam entre 0 e 1023. Se assim for, esse valor nunca vai ter 6 digitos...

De qualquer das formas, quanto menos converteres a informação, melhor. Ou seja, o arduino lê um nº int do sensor, por isso deves usar a primeira solução trocando a linha "int valor = 123456" por "int valor = analogRead(A0)" (troca tambem A0 pela porta correta)

Não cara, esse sensor esta ligado na porta D7, esse valor é o resultado decodificado do RAW que o sensor está recebendo.

evil-noxx: O que queres é o resto da divisão por 10 ou 100:

int valor = 123456

int var05 = valor % 100 valor = valor / 100

int valor04 = valor % 10 valor = valor / 10 ...




neste exemplo, 123456 % 100 = 56 e 123456 / 100 = 1234
Com esta tecnica consegues "separar" valores inteiros

Evil resolvi dessa forma mesmo, ficou show de bola, muito agradecido.