sprintf utilisation avec des %.s

Tout en utilisant sprintf comme ce

sprintf("%.40s",str);

Je veux donner une valeur comme strlen(str) au lieu de 40.Comment dois-je faire? J'ai essayé de remplacer 40 avec strlen(str), ne fonctionne pas. Donner une valeur comme

#define len strlen(str)

et à l'aide de %.len ne marche pas non plus car %.len est utilisé dans les " ".

Si strlen fonctionne pour vous, alors vous avez une chaîne terminée par NULL et que vous n'avez pas besoin de vous soucier d'un numéro à mettre pour %s.Si votre chaîne n'est pas null puis de toute façon, vous obtiendrez de longueur incorrecte.Afin de ne pas résoudre le but.

OriginalL'auteur Iceman | 2012-11-08