Pessoal, estou com um problema na manipulação de strings no Arduino. Não sei se é um problema de ponteiros que não estou encontrando e está estragando tudo ou se são dois problemas separados (acho que são dois).
Problema 1) Ao copiar uma string "1234560001a" usando "txt.toCharArray" da classe "String", está copiando um caracter a menos, ou seja, a cópia no buffer fica apenas com "1234560001", sem o "a" no final;
Problema 2) Ao carregar "txt" com outro texto qualquer e copiar seu conteúdo para o segundo buffer "ss2", está sobrescrevendo o conteúdo de "ss1" também, que em teoria deveria manter o conteúdo "1234560001a" inicial.
Alguém pode me orientar?
Segue o código para simular:
void setup() {
char* ss1 = "";
char* ss2 = "";
String txt = "";
Serial.begin(115200);
txt = "1234560001a";
txt.toCharArray(ss1, txt.length());
Serial.printf("\n\n");
Serial.printf("ss1 = %s\n", ss1); // Imprime "1234560001" sem o caracter "a" do final
// Neste caso força incorretamente "ss1" se tornar igual "ss2" e também remove o último caracter
txt = "abcdef";
txt.toCharArray(ss2, txt.length());
Serial.printf("ss1 = %s\n", ss1); // "ss1" fica igual "ss2" ?!?! E imprime "abcde" sem o caracter "f"
Serial.printf("ss2 = %s\n", ss2); // Imprime "abcde" também
}
Tags:
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2023 Criado por Marcelo Rodrigues.
Ativado por