LusoRobótica - Robótica em Português
Sistemas específicos => Arduino / AVR => Tópico iniciado por: joaopedrocmp em 09 de Abril de 2013, 01:14
-
Boas,
estou a tentar igualar uma função aos ultimos 12 caractees desta string : 00110000910000FF06E8329BFDBE03, ou seja, queria apenas ficar com "E8329BFDBE03".
Será o Lastindexoff, a melhor maneira?
Obrigado
-
Boas,
estou a tentar igualar uma função aos ultimos 12 caractees desta string : 00110000910000FF06E8329BFDBE03, ou seja, queria apenas ficar com "E8329BFDBE03".
Será o Lastindexoff, a melhor maneira?
Obrigado
isso é java ou C
Se for C, podes fazer uma copia dos indices de 12 a 0
Se for Java, era converteres isso para um array de char e fazias o msm que em C
-
char[] mensagemrecebida = new char[30];
char[] mensagemFinal = new char[12];
int i=0
int size = 12;
int j = 0;
for(i = mensagemRecebida.lenght-size; i>mensagemrecebida.lenght;i++)
{
mesagemFinal[j]= mensagemRecebida;
j++;
}
isso deve ser o que pretendes
By Misato
-
Obrigado pela resposta,vou experimentar
;)
-
Nao me estou a entender com isto :S
-
Boas.
Convinha teres especificado a linguagem... :P
O lastIndexOf não faz sentido usares aqui, serve para procurares a posição de certas coisas numa string. Tu aqui não precisas de ir à procura de nada, queres simplesmente copiar uma parte de uma string para outra.
Quando falas de strings, estás a falar de objectos do tipo String, ou simplesmente arrays de chars?
O código que foi postado pelo display é para arrays de chars, mas tem uns pequenos bugs :P
Se o código for em C, será algo do tipo:
char[] mensagemrecebida = new char[30];
char[] mensagemFinal = new char[13]; // aqui eu usaria 13 para poder terminar a string com um 0 (não é obrigatorio)
int i=0
int size = 12;
int j = 0;
// para veres o tamanho da string terás provávelmente de usar a função strlen
for(i = strlen(mensagemRecebida)-size; i<strlen(mensagemRecebida);i++) // aqui era < em vez de >
{
mesagemFinal[j]= mensagemRecebida[i]; // aqui faltou colocar o [i]
j++;
}
mesagemFinal[size] = 0; // coloca o 0 que indica o fim da string
Mas se a idéia é copiar sempre os ultimos 12 caracteres de uma string de 30 caracteres, eu nem usaria este código, faria simplesmente:
memcpy(mensagemFinal, mensagemRecebida+18, 13); // 13 = 12 caracteres + terminador
ou
strcpy(mensagemFinal, mensagemRecebida+18); // não é preciso dar o numero, copia tudo até ao fim