Go Down

Topic: Transformar inteiro em string (Read 1 time) previous topic - next topic

Kotch

Pq não consigo transformar o integer em string, onde estou errando devo usar itoa?

int Value1 = 21125; //TODA VARIAVEL RECEBIDA PELA SERIAL TEM  O FORMATO 21xxx  ONDE xxx VARIA DE 0 A 360 EU PRECISO EXTRAIR ESTE   VALOR
sprintf(Value1, "%i", Value); //TRANSFORMA EM STRING
String1 = Value1.substring(2,5); //EXTRAI O VALOR 125 DO INTEIRO IGNORANDO O VALOR 21

error: request for member 'substring' in 'Value1', which is of non-class type 'int'

=(
????????????????????

Eu gosto mais de resolver isso assim:
Code: [Select]

char resultado[6];
int value1 = 21125;

int angle = Value1%21000; //isto dá 125.
itoa(angle, resultado, 10);


O teu erro é este:

Code: [Select]

char Value[6];
...
sprintf(Value, "%i", Value1); // primeiro colocas o array de chars, e colocas o integer depois do formato que queres imprimir.
Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

Kotch

#2
Jun 20, 2012, 04:16 pm Last Edit: Jun 20, 2012, 11:07 pm by Kotch Reason: 1
Obrigado, estou agora na sala de espera pra fazer um tomografia pois ontem a noite na frente do computador tive um reset (ctrl+alt+del) do meu cerebro, apaguei por um segundo mais ou menos, quando chegar em casa irei testar!

:-)

????????????????????

Kotch

#3
Jun 20, 2012, 10:45 pm Last Edit: Jun 20, 2012, 11:07 pm by Kotch Reason: 1
Funcionou, mas na realidade deveriá ser assim:
recebo duas variaveis pela serial, uma começa com 21 e mais tres números que vao de 000 ate 360
e a outra começa com 17 e mais dois numeros que vao de 00 a 90 no seguinte formato:17234 2145 17233 2146 17232 2147......
preciso saber pra qual motor enviar estes numero, pois o 21 indica que devo enviar os proximos tres numero pro motor 1
e o 17 indica que devo enviar os próximos dois números para o motor 2
como são números inteiros, pensei em transformar em string pra "pegar" o começo de cada valor e comparar, aí sobra o resto que transformo
de volta pra integer e mando ora pro motor 1 ou para o motor 2.
Alguma idéia?
Obrigado pelo interesse!

:(
????????????????????

não dá para uniformizar os valores que recebes? :S
Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

Kotch

#5
Jun 20, 2012, 11:50 pm Last Edit: Jun 20, 2012, 11:52 pm by Kotch Reason: 1
Nao dá, vem de um programa que nao tenho controle, so leio a serial.
mas pensei o seguinte, acho que vou usar o ascii que vem pela serial, acho que vai ficar mais facil
sempre que vier um 13 é pq mudou, ai fico olhando o proximo char se for 65 significa que vem mais tres ascii e devem ir pro motor um
se for 69 virá mais dois ascii e devem ir pro motor 2, aí é transformar os ascii em char, concatenar, transformar pra integer
e enviar pro motor.
O que acha?

8)
????????????????????

Daqui a umas horas vejo isso.

Como recebes em ascii, isso vai ser mais simples de implementar. Depois só tens de meter os valores para uma string e converter. :) ou então, converter logo mal recebes. Menos memória é usada assim. :)
Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).


Go Up