Créer une chaine de caractère contenant des coordonées GPS

Bonjour

toujours dans mon projet de GPS, je me retrouve avec des coordonnées GPS au format décimale (45.1234567, 2.1234567 par exemple).
J'ai trouvé une fonction qui permet de les transformer en Degrés, minutes, secondes (DMS) très facilement :

void DD_DDDDDtoDDMMSS( double DD_DDDDD , int *DD, int *MM, double *SS ) {
  *DD = (int)DD_DDDDD; //ne garde que les chiffres avant la virgule
  *MM = (int)((DD_DDDDD - *DD) * 60); //Les minutes
  *SS = ((DD_DDDDD - *DD) * 60 - *MM) * 60; //Les secondes
}

Puis je l'affiche sur mon écran avec le code suivant :

DD_DDDDDtoDDMMSS(gps.location.lat(), &DD, &MM, &SS);
display.print(DD);
display.print(char(265));
display.print(MM);
display.print("'");
display.print(SS);
display.print("\"");

Je trouve ça long comme méthode d'affichage et pas très pratique/lisible si elle doit être recopier plusieurs fois dans le code (pour être affiché à différents endroit).

N'y aurait-il pas une solution pour créer, par exemple, un CHAR contenant la totalité du texte à afficher ?

Merci

sprintf devrait faire l'affaire

char buffer[20];

sprintf(buffer,"%02d%s%02d'%d/",DD,char(265),MM,SS);
display.print(buffer);

Bonsoir
et merci pour vos réponses,

fdufnews, merci pour le lien vers printf, je n'ai encore jamais utilisé cette fonction, et j'avoue avoir du mal à comprendre les différents format qui la compose et que tu utilise...

Petit hic, la fonction que tu m'as donné retourne :

02
23'6268/

à la place de :

2°23'56.77"

J'essaye de comprendre les modification à apporter pour que ça colle avec le résultat attendus mais pas évident.

pepe : ok, donc pour toi, ma manière est la moins lourde en mémoire ?

la macro pourrait être une solution, ça aussi je découvre.