Maison >développement back-end >C++ >Comment spécifier le nombre de caractères à imprimer à partir d'une chaîne à l'aide de printf() ?
Spécifier le nombre de caractères à imprimer avec printf()
La question se pose : existe-t-il un mécanisme dans printf() qui permet spécifier le nombre de caractères à imprimer à partir d'une chaîne ? On pourrait comparer cela à la spécification de décimales dans des nombres entiers. Par exemple :
printf ("Here are the first 8 chars: %s\n", "A string that is more than 8 chars");
De préférence, cette ligne devrait afficher :
Here are the first 8 chars: A string
Solution
Il existe deux approches principales pour y parvenir dans C.
Méthode 1 : La base Approche
printf ("Here are the first 8 chars: %.8s\n", "A string that is more than 8 chars");
Méthode 2 : L'approche polyvalente
printf ("Here are the first %d chars: %.*s\n", 8, 8, "A string that is more than 8 chars");
Dans cette approche, la longueur est fournie comme argument int à printf() . Le '*' dans le format est interprété comme une demande de récupération de la longueur d'un argument.
Notation étendue
Une autre notation peut être utilisée :
printf ("Here are the first 8 chars: %*.*s\n", 8, 8, "A string that is more than 8 chars");
Analogue à "%8.8s", cette notation permet également de spécifier les longueurs minimales et maximales au moment de l'exécution. Cela devient particulièrement utile dans des scénarios tels que :
printf("Data: %*.*s Other info: %d\n", 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!