[Resolu]Comment fusionner des char avec sprintf

Bonjour,

J'essayer d'envoyer un SMS.

Pour cela je dois faire ceci qui fonctionne

(Attention, je n'ai pas encore travailler sur le return true, Donc il retourne toujours true...)

boolean SendSMS(char *number_str, char *message_str) 
{
  Serial.println("> Sending a SMS");
  if(strstr(read_AT_string("AT",4000),"OK") != NULL)
  {
      if(debug_buffer) Serial.println(buffer);
      //Set message mode
      read_AT_string("AT+CMGF=1",3000);
      if(debug_buffer) Serial.println(buffer);
      //Send message
      read_AT_string("AT+CMGS=\"+4170000000\"",300);
      if(debug_buffer) Serial.println(buffer);

      read_AT_string(message_str,1000);
      Serial1.write(26);
      if(debug_buffer) Serial.println(buffer);
  }
  
  return true;
}

Le truc c'est que je souhaite utiliser le parametre number_str.

Pour cela, j'ai modifier la fonction ainsi

boolean SendSMS(char *number_str, char *message_str) 
{
  char *ch;
  Serial.println("> Sending a SMS");
  if(strstr(read_AT_string("AT",4000),"OK") != NULL)
  {
      if(debug_buffer) Serial.println(buffer);
      //Set message mode
      read_AT_string("AT+CMGF=1",3000);
      if(debug_buffer) Serial.println(buffer);
      //Send message
       sprintf(ch, "AT+CMGS=\"%s\"", number_str);
      read_AT_string(ch,3000); // Send the command set in ch

      read_AT_string(message_str,1000);
      Serial1.write(26);
      if(debug_buffer) Serial.println(buffer);
  }
  
  return true;
}

Si le message a bien été envoyé ca doit reurner true, ou false, si non. Mais ca j'en suis pas encore là.

Ceci ne fonctionne pas

 sprintf(ch, "AT+CMGS=\"%s\"", number_str);

La premiere question c'est les

%c

J'ai vu %s, %d et je en sais pas lequel utiliser.
J'ai lu cecu ;
http://www.cplusplus.com/reference/cstdio/printf/
donc je suppose que je dois utiliser le %s mais ca ne fionctionne toujours.

Je vines de constater que le code moline/s'arrete avant

 sprintf(ch, "AT+CMGS=\"%s\"", number_str);

Pourriez m'éclairecir là-dessus?

Mercisssss

Problème résolu
Voici la solution

********/
/* SMS */
boolean SendSMS(char *number_str, char *message_str) 
{
  char ch[30];
  Serial.println("> Sending a SMS");
  if(strstr(read_AT_string("AT",3000),"OK") != NULL)
  {
      if(debug_buffer) Serial.println(buffer);
      //Set message mode
      read_AT_string("AT+CMGF=1",1000);
      if(debug_buffer) Serial.println(buffer);
      
      sprintf(ch, "AT+CMGS=\"%s\"", number_str);
      read_AT_string(ch,3000);
      
      read_AT_string(message_str,1000);
      Serial1.write(26);
  }
  
  return true; // Temporaire
}

Si vous avez mieux à proposer = welcome