printf qui retourne une chaîne

Existe-t-il une fonction telle que printf qui peut renvoyer une chaîne au lieu de l’imprimer? J’ai une fonction qui imprime une chaîne dans une certaine couleur, mais il doit s’agir d’un littéral de chaîne au lieu d’accepter des variables comme printf.

// Function declaration (Assums YELLOW and NORMAL are the unix constants for terminal colors void pYellow(char *str) { printf("%s%s%s", YELLOW, str, NORMAL); } //Function call void pYellow("This is a ssortingng"); 

Si je voulais imprimer en couleur avec une variable, cela ne fonctionnerait pas. Comme pYellow("Num: %d", 42); donnera une erreur, car il a trop de parameters. Et faire pYellow(printf("Ssortingng")); ne fonctionnera pas non plus.

TL: DR Je veux savoir s’il existe une méthode printf qui renvoie une chaîne au lieu de l’imprimer.