Adicionar espaços antes do número.

Olá!

Esto tendo dificuldades para montar algo simples.

Uma variável retorna um valor qualquer entre 0 e 255;

Preciso adicionar dinamicamente 1 ou 2 espaços antes do número desta variável.

se int iVar = 0;
preciso de um char " 0"; adicionar 2 espaços antes do 0

se int iVar = 12
preciso de um char " 12" ; adicionar 1 espaço antes do 12

se int iVar = 241
preciso de um char "241" ; retornar o iVar como char

Grato,
Detefon

Estou usando este exemplo, tem algo melhor?
int ii;

void setup() {
Serial.begin(9600);

int iControl = 2;
char buffer[3];

Serial.println("teste..");

itoa(iControl, buffer, 10);
StringPadLeft(buffer, 3, " ");

Serial.print("[ ");
Serial.print(buffer);
Serial.println(" ]");

}

void loop() {
delay(1000);
}

char *StringPadLeft(char *sInput, int iMax, char *pad){
int iLen = (int) strlen(sInput);
if (iLen >= iMax){
return sInput;
}
String sRet = "";
for (ii = 0 ; ii < iMax - iLen; ii++){
sRet += (String) pad;
}
sRet += (String) sInput;
sRet.toCharArray(sInput, iMax + 1);
}

usares algo sem o objecto String e por si so melhor.

a tua variavel buffer tem de ter 4 espacos e nao 3.

char res[4]; 

if (strlen(buffer) == 1) {
   strcpy(res, "00");
   strcat(res, buffer); 
}
if (strlen(buffer) == 2) {
   strcpy(res, "0");
   strcat(res, buffer); 
}
if (strlen(buffer) == 3) {
   strcpy(res, buffer);
}

Algo assim funcionaria?