Erro ao Converter Char to Int

Boa tarde pessoal. Estou tentando uma conversao de char para int e ele apresenta um erro.

Valor que estou enviando atraves de socket = 5110

getServer = client.read(); // Aqui ele recebe um caractere por vez, sendo 5 1 1 0

// Preciso transformar o numero 5 em inteiro. Aqui ele capta, mas ao converter duplica o numero. char getServer; char tempSetPort[1]; int setPort;

tempSetPort[0] = getServer; setPort = atoi(tempSetPort);

// No console serial ele mostra esses dados Variavel getServer = 5 Variavel tempSetPort = 5 Variavel setPort = 55

Segue codigo do programa.

// verifica se conexao iniciou - begin 
  if (client) {
    // enquanto estiver conectado faça - 
    while (client.connected()) {
      // verifica se esta conectado na rede - begin
      if (client.available()) {
       
        // recebe dados do servidor externo
        getServer = client.read();
        
        tempSetPort[0] = getServer;
        setPort = atoi(tempSetPort);  

        Serial.println("tempSetPort: ");
        Serial.println(tempSetPort[0]);
                    
        Serial.println("setPort: ");
        Serial.println(setPort);
setPort = atoi(tempSetPort);

The atoi() function takes a NULL terminated array of chars. The tempSetPort array is NOT a NULL terminated array of chars.

A questão está respondida, o entanto, se apenas é necessário converter o primeiro caracter para inteiro, porque não fazer:

tempSetPort[0] = getServer;
setPort = tempSetPort[0] - '0';

PaulS e luissilva obrigado pela ajuda. Eu nao sabia desses detalhes.

Deu certo, esta funcionando…obrigado