Utilisation de strlen()
Fait partie de la section Logique & Flux du Journey C de Coddy. Leçon 15 sur 63.
Tu as appris à lire des chaînes à partir de la saisie utilisateur, mais tu dois maintenant trouver un moyen de déterminer leur longueur. C fournit la fonction strlen() de la bibliothèque <string.h> précisément à cette fin.
La fonction strlen() compte le nombre de caractères dans une chaîne, jusqu’à ce qu’elle atteigne le terminateur nul \0. Il est important de noter qu’elle n’inclut pas le terminateur nul dans son décompte : elle compte uniquement les caractères visibles.
#include <stdio.h>
#include <string.h>
char word[] = "Hello";
int length = strlen(word);
printf("Length: %d\n", length); // Affiche : Length: 5Pour utiliser strlen(), tu dois inclure l’en-tête <string.h> en haut de ton programme. Cette fonction prend une chaîne de caractères comme argument et renvoie un entier représentant le nombre de caractères avant le caractère nul de fin.
Cette fonction est particulièrement utile lorsque tu as besoin de connaître l’espace qu’occupe une chaîne de caractères, de valider la longueur d’une entrée ou d’effectuer des opérations qui dépendent de la taille d’une chaîne. C’est l’une des fonctions de chaîne les plus utilisées en programmation C.
Défi
FacileÉcrivez un programme C qui lit plusieurs mots en entrée et analyse leur longueur à l’aide de la fonction strlen(). Votre programme doit :
- Les lignes au-dessus de votre code lisent déjà un entier
n, le nombre de mots à traiter - Pour chacun des
nmots :- Déclarer un tableau de caractères de 50 éléments pour stocker le mot
- Lire le mot à l’aide de
scanf - Utiliser
strlen()pour calculer la longueur du mot - Afficher le mot et sa longueur au format spécifié
- Après avoir traité tous les mots, stocker dans
total_charactersle nombre total de caractères de tous les mots - Stocker dans
max_lengthla longueur du mot le plus long
Les lignes au-dessus de votre code incluent déjà l’en-tête <string.h> dont strlen() a besoin.
Les lignes au-dessous de votre code affichent total_characters et max_length. Votre sortie doit ressembler à ceci :
Word: [word] - Length: [length]
Word: [word] - Length: [length]
...
Total characters: [total]
Longest word length: [max_length]Par exemple, si l’entrée est :
3
hello
programming
CVotre sortie doit être :
Word: hello - Length: 5
Word: programming - Length: 11
Word: C - Length: 1
Total characters: 17
Longest word length: 11Ce défi teste votre compréhension de l’utilisation de strlen() pour mesurer la longueur des chaînes, du traitement de plusieurs chaînes avec des boucles et de la réalisation de calculs à partir des données de longueur des chaînes.
Essayez vous-même
// TODO: Écrivez votre code ici
// Traitez chaque mot à l’aide d’une boucle
// Pour chaque mot :
// - Déclarez un tableau de caractères de 50 éléments
// - Lisez le mot avec scanf
// - Calculez sa longueur avec strlen()
// - Affichez le mot et sa longueur
// - Mettez à jour total_characters et max_length
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Logique & Flux
1Les bases des pointeurs
Qu'est-ce qu'un pointeur ?Déclaration de pointeursL'opérateur d'adresse (&)L'opérateur de déréférencement (*)Pointeurs NULLRécapitulatif : Les bases des pointeurs4Projet : Utilitaire de texte simple
Présentation du projetCompter les caractères2Pointeurs et Tableaux
Noms de tableaux comme pointeursÉléments de tableau - PointeursArithmétique des pointeursComparaison de pointeursRécapitulatif : Parcours de tableau par pointeur5Pointeurs et fonctions
Passage par valeurPassage de pointeurs aux fonctionsModifier des variables via des pointeursUn exemple classique : SwapPassage de tableaux aux fonctionsRécapitulatif : Pointeurs comme arguments de fonction3Tableaux de caractères et chaînes
Les chaînes comme tableaux de charLe terminateur nulSaisie de chaînes avec scanfUtilisation de strlen()Utilisation de strcpy()Utilisation de strcat()Utilisation de strcmp()Récapitulatif : Fonctions de base sur les chaînesEntraînez-vous par vous-même : Compilateur C en ligne