Recuperar vários char e salvar em uma String

Só para finalizar, no Brasil alguns estados possuem o telefone com um caractere a mais logo o nosso exemplo anterior de +556293841234 funciona perfeitamente, porém se alguém destes estados tentarem usar o sistema, não vai funcionar, pois eles possuem um número sobrando +5562938412345. Alterei o exemplo para o código abaixo, pensei que se jogar o \0 para o caractere padrão com 13 dígitos, ele enviaria os de 13 e quanto chegar algum com 14 ele iria substituir o \0 pelo caractere do numero e funcionaria em ambos.

Infelizmente essa ideia não funcionou, saberia alguma forma para resolver isso?

char mensagem[161]; // Tens de limitar o php a só enviar 160 caracteres. 
char numero[15];
numero[13] = '\0';
unsigned char pointer = 0; 

if (client.connected()) {
   if(client.available()){ //temos um pedido. 
      //pegar na mensagem.
      for (pointer = 0; pointer < 159; pointer++) {
         mensagem[pointer] = client.read(); 
         if(mensagem[pointer] == '|') break; //já temos a nossa mensagem salta do loop
       } //end for
       mensagem[pointer] = '\0'; //terminador... isto terá de ser verificado mais tarde quando enviares mensagens com menos de 160 caracteres. 
       //pegar no numero agora. 
       for (pointer = 0; pointer <14; pointer ++) { 
          mensagem[pointer] = client.read();
       } 
       message[14] = '\0';
       
       Serial.print("mensagem ");
       Serial.println(mensagem);
       Serial.print("para o numero");
       Serial.println(numero);
       while(client.available()>0) client.read(); //isto é para libertar o que tens dentro do buffer... ou seja, a cada ligacão o php só envia um comando. Isto, pode ser mudado...
   } //if available. 
} //if connected