Maison >développement back-end >C++ >Comment spécifier le nombre de caractères à imprimer à partir d'une chaîne à l'aide de printf() ?

Comment spécifier le nombre de caractères à imprimer à partir d'une chaîne à l'aide de printf() ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-30 14:57:12642parcourir

How to Specify the Number of Characters to Print from a String using 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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn