Maison > Article > développement back-end > Comment puis-je personnaliser la troncature de chaîne dans printf() ?
Personnalisation de la troncature de chaîne dans printf()
Requête :
Est-il possible de contrôler le nombre de caractères imprimés à partir d'une chaîne à l'aide de printf(), ce qui revient à spécifier des décimales pour les entiers ?
Considérez :
printf("Voici les 8 premiers caractères : %sn", "Une chaîne de plus de 8 caractères");
Résultat attendu : Voici les 8 premiers caractères : Une chaîne
Solution :
Il existe deux méthodes principales pour réaliser cette personnalisation :
Méthode 1 :
printf("Voici les 8 premiers caractères : %.8sn" , "Une chaîne de plus de 8 caractères");
Méthode 2 :
printf("Voici les %d premiers caractères : %.*sn" , 8, 8, "Une chaîne de plus de 8 caractères");
Dans la deuxième méthode, un argument entier est passé à printf(), spécifiant la longueur. Le '*' dans le format invite printf() à obtenir la longueur à partir de l'argument qui l'accompagne.
Une notation alternative existe :
printf("Voici les 8 premiers caractères : %*. *sn", 8, 8, "Une chaîne de plus de 8 caractères");
Cette notation s'apparente au format "%8.8s" mais permet une spécification dynamique des longueurs minimales et maximales, notamment utile dans des scénarios tels que :
printf("Data: %*.*s Other info: %dn", minlen, maxlen, string, info);
La spécification POSIX pour printf() fournit une explication détaillée de ces mécanismes.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!