Arduino + Shield Ethernet

Alguém sabe se eu posso passar o valor de uma variável para buscar no seguinte comando:

char QUERY_POP[] = "SELECT esp FROM projeto.usuario WHERE id = id";

Esse id é uma variável, acontece que ele não atribui o valor da variável e sim o nome id.

Talvez procures a função strcat para fazer a operação de concatenação Vê isto http://www.cplusplus.com/reference/cstring/strcat/

void setup() {                

Serial.begin(9600);
char QUERY_POP[] = "SELECT esp FROM projeto.usuario WHERE id =";
char *id = "foo";
Serial.print(strcat(QUERY_POP,id));
}

void loop() {

}

Eu nao tenho a certeza, mas diria que deixar as coisas assim talvez nao seja boa ideia.

QUERY_POP vai ter um tamanho de 44 caracteres, todos eles ocupados... depois vais adicionar 3 caracteres a uma string que nao tem espaco.

Tanto pode funcionar, como pode dar asneira. A nao ser que o strcat altere a memoria que esta alocada a QUERY_POP, mas duvido que isso seja feito.

Sim esqueci de referir isso, o array de caracteres TEM de ter espaço para eventualmente todas as possíveis strings que adiciones. Tipo char QUERY_POP[50] = "SELECT esp FROM projeto.usuario WHERE id =";//Pode conter ate 50 caracteres ... A alternativa a isto e usares Objectos String mas isso é como matar uma pulga com uma luva de box :)

No caso eu estou usando a logica do head_count(QUERY_POP) para repassar a saída do banco como uma variavél se eu usar este método eu poderei repassar a variavél ainda?